Hallo. Wenn ich versuche, eine Excel-Datei mithilfe eines Skripts zu öffnen, fällt mir auf, dass der Excel-Importassistent angezeigt wird, wenn der Befehl „Öffnen“ aus einer Schaltflächenbox stammt, aber nicht, wenn sich der Befehl „Öffnen“ auf der obersten Ebene des Skripts befindet. Zur Klarstellung: Ich möchte in diesem Fall nicht, dass der Assistent erscheint. Kennt jemand dieses Verhalten und wenn ja, kann ich es beheben?
Ich habe zum Beispiel ein Skript, bei dem der Benutzer eine Excel-Datei auswählt und sie dann öffnet. In diesem Fall wird die Excel-Datei problemlos als JMP-Tabelle geöffnet. Wenn ich jedoch stattdessen den Befehl zum Öffnen der Excel-Datei in einer Schaltflächenbox platziere, erscheint der Excel-Assistent. Auch wenn in beiden Fällen genau die gleichen Optionen verwendet werden. Dies wird im folgenden Skript anhand der angehängten XLSX-Datei demonstriert:
Names Default to Here(1);
//Get location of file:
path = Pick File("Select xlsx Table...",,
{"Excel|xlsx"}, 1,
0
);
If(path == "", Stop());
//Expression to open file:
open_exp = Expr(
Open(path,
Worksheets("Sheet1"),
Use for all sheets(1),
Concatenate Worksheets(0),
Create Concatenation Column(0),
Worksheet Settings(
1,
Has Column Headers(1),
Number of Rows in Headers(1),
Headers Start on Row(1),
Data Starts on Row(2),
Data Starts on Column(1),
Data Ends on Row(0),
Data Ends on Column(0),
Replicated Spanned Rows(0),
Replicated Spanned Headers(0),
Suppress Hidden Rows(1),
Suppress Hidden Columns(1),
Suppress Empty Columns(1),
Treat as Hierarchy(0),
Multiple Series Stack(0),
Import Cell Colors(0),
Limit Column Detect(1),
Column Separator String("-")
)
);
);
//Attempt to open file...works as intended (no Import Wizard)
open_exp;
//Attempt to open file via a button...always results in the Import Wizard.
win = New Window("Temp",
ButtonBox("Open xlsx",
open_exp
)
);Wie Sie sehen können, verwenden beide Methoden genau denselben Befehl mit genau denselben Optionen für genau dieselbe Datei, dennoch erhalte ich zwei unterschiedliche Verhaltensweisen.
Beachten Sie außerdem, dass beim Öffnen der XLSX-Datei über die Schaltflächenbox die Einstellungen des Öffnungsbefehls anscheinend ignoriert werden. Das heißt, wenn ich die Optionen „Anzahl der Zeilen in Kopfzeilen“, „Kopfzeilen beginnen in Zeile“, „Daten beginnen in Zeile“ usw. ändere, berücksichtigt die erste verwendete Methode diese neuen Einstellungen. Allerdings scheint die zweite „Buttonbox“-Methode mit dem Import-Assistenten immer auf die Standardeinstellungen zurückzusetzen.
Fürs Protokoll: Ich möchte meine Einstellungen nicht so ändern, dass JMP niemals den Excel-Assistenten verwendet. Ich möchte es in diesem Fall einfach nicht verwenden und ich kann nicht verlangen, dass andere Benutzer dieser App die gleichen Mods nach ihren Wünschen vornehmen.
Meine Besonderheiten:
JMP Pro 15.2.1
Mac OS Catalina 10.15.7
Excel: Version 16.49
Ich hoffe, jemand kann helfen. Danke!
Wendy,
Gibt es diesbezüglich ein Update?
Ich habe ein Skript, das einige Schriftarten auf meinen Anzeigefeldern festlegt, aber es stellt sich heraus, dass auf einigen Computern in der Organisation nur sehr wenige Schriftarten installiert sind.
Daher erhalten meine Benutzer viele Popups mit der Meldung „Unbekannte Schriftart“. Anstatt alles auf die Standardschriftarten zurückzusetzen, habe ich versucht, es in Try()-Blöcke einzuschließen, aber es hat nicht geholfen.
Craige empfahl die Verwendung von Batch Interactive(1), aber es scheint auch nicht zu funktionieren, wie das einfache Beispiel unten zeigt:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :height ), X( :weight ) );
rbiv = biv << Report;
For Each({box, index}, (rbiv << XPath( "//AxisBox/MouseBox/DropBox/TextEditBox" )),
Batch Interactive(1);
Try(box << Set Font( "Agency FF", 13 ));
Batch Interactive(0);
);Irgendeine Idee, warum Batch Interactive(1) in diesem Fall nicht funktioniert und wie man mit den fehlenden Schriftarten umgeht?
Hallo, @Craige_Hales .
Batch Interactive() ist nicht dokumentiert, da es als experimentell gilt.Dem JMP-Entwicklungsteam wurde jedoch vorgeschlagen, die Funktion auf volle Unterstützung auszuweiten.Ich werde diese Diskussion zu dieser Anfrage hinzufügen.Der typische Anwendungsfall ist ein Teil eines Skripts, das über eine interaktive Aktion, beispielsweise das Klicken auf eine Schaltfläche, ausgeführt wird.
Die Dokumentation der Option „Excel-Assistent“ ist an folgenden Orten enthalten:
Eine Anfrage zur Aufnahme in das Scripting Index-Beispiel zum Öffnen von Excel-Daten gebe ich gerne weiter.
sehen Ignorieren oder deaktivieren Sie modale JMP-Warnungen für die Batchinteractive-Funktion. Die tastengesteuerte Version des Skripts weiß Sie müssen interaktiv sein und werden von einem interaktiven Assistenten unterstützt.
Auch, Umgehen Sie den Excel-Import-Assistenten im Skript hat ein bessere Antwort .
Wenn Sie schließlich das gegenteilige Problem haben und den Assistenten benötigen, lesen Sie Erzwingen Sie, dass Open() den Excel-Assistenten verwendet, ohne die Einstellungen zu ändern
@Wendy_Murphrey Beides scheint in der Dokumentation schwer zu entdecken.
Bearbeiten: Link zu seltsame Variante mit SetFont