Salut. Je remarque que si j'essaie d'ouvrir un fichier Excel à l'aide d'un script, l'assistant d'importation Excel apparaît si la commande Ouvrir provient d'une boîte à boutons, mais il n'apparaît pas si la commande Ouvrir se trouve au niveau supérieur du script. Pour mémoire, je ne souhaite pas que l'assistant apparaisse dans ce cas. Est-ce que quelqu'un connaît ce comportement, et si oui, puis-je le corriger ?
Par exemple, j'ai un script dans lequel l'utilisateur sélectionne un fichier Excel, puis il s'ouvre. Dans ce cas, le fichier Excel s'ouvre en tant que tableau JMP sans problème. Cependant, si à la place je place la commande pour ouvrir le fichier Excel dans une boîte à boutons, l'assistant Excel apparaît. Même si vous utilisez exactement les mêmes options dans les deux cas. Ceci est démontré dans le script ci-dessous, en utilisant le fichier xlsx joint :
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
)
);Comme vous pouvez le voir, les deux méthodes utilisent exactement la même commande avec exactement les mêmes options sur exactement le même fichier, mais j'obtiens 2 comportements différents.
De plus, lorsque le fichier xlsx est ouvert via la boîte à boutons, les paramètres de commande d'ouverture semblent être ignorés. Autrement dit, si je modifie les options "Nombre de lignes dans les en-têtes", "Les en-têtes commencent sur la ligne", "Les données commencent sur la ligne", etc., la première méthode utilisée respectera ces nouveaux paramètres. Cependant, la deuxième méthode "boîte à boutons" avec l'assistant d'importation semble toujours revenir aux paramètres par défaut à la place.
Pour mémoire, je ne souhaite pas modifier mes préférences afin que JMP n'utilise jamais l'assistant Excel. Je ne veux tout simplement pas l'utiliser dans ce cas, et je ne peux pas exiger que les autres utilisateurs de cette application créent les mêmes mods selon leurs préférences.
Mes spécificités :
JMP Pro 15.2.1
MacOS Catalina 10.15.7
Excel : version 16.49
J'espère que quelqu'un peut aider. Merci!
Wendy,
Y a-t-il une mise à jour à ce sujet ?
J'ai un script qui définit certaines polices sur mes boîtes d'affichage, mais il s'avère que certains ordinateurs de l'organisation ont des polices très minimales installées.
Ainsi, mes utilisateurs reçoivent de nombreuses fenêtres contextuelles indiquant "Police inconnue". Plutôt que de tout rétablir dans les polices par défaut, j'ai essayé de l'envelopper dans des blocs Try(), mais cela n'a pas aidé.
Craige a conseillé d'utiliser Batch Interactive(1), mais cela semble également ne pas fonctionner, comme le montre l'exemple simple ci-dessous :
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);
);Avez-vous une idée de la raison pour laquelle Batch Interactive(1) ne fonctionne pas dans ce cas et comment gérer les polices manquantes ?
Salut, @Craige_Hales .
Batch Interactive() n'est pas documenté car il est considéré comme expérimental.Cependant, il a été suggéré à l'équipe de développement de JMP de promouvoir la fonction pour une prise en charge complète.J'ajouterai cette discussion à cette demande.Le cas d'utilisation typique est dans le cadre d'un script qui est exécuté à partir d'une action interactive, comme cliquer sur un bouton.
La documentation de l'option "Excel Wizard" est incluse dans les emplacements suivants :
Je serai heureux de transmettre une demande pour l'inclure dans l'exemple d'index de script pour l'ouverture de données Excel.
voir Ignorer ou désactiver les alertes JMP modales pour la fonction batchinteractive. La version pilotée par bouton du script sait vous devez être interactif et vous place utilement dans un assistant interactif.
Aussi, Ignorer l'assistant d'importation Excel dans le script a un meilleure réponse .
Enfin, si vous avez le problème inverse et que vous voulez l'assistant, voir Forcer Open() à utiliser l'assistant Excel sans modifier les préférences
@Wendy_Murphrey les deux semblent difficiles à découvrir dans la documentation.
édit : lien vers variation étrange avec SetFont