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. Quelqu'un est-il familier avec 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 sous forme de tableau JMP sans problème. Cependant, si je place la commande pour ouvrir le fichier Excel dans une boîte à boutons, l'assistant Excel apparaît. Même en utilisant exactement les mêmes options dans les deux cas. Ceci est démontré dans le script ci-dessous, en utilisant le fichier xlsx ci-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.
Il convient également de noter que lorsque le fichier xlsx est ouvert via la boîte à boutons, les paramètres de la 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 "buttonbox" avec l'assistant d'importation semble toujours revenir aux paramètres par défaut.
Pour mémoire, je ne souhaite pas modifier mes préférences pour 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 effectuent les mêmes modifications selon leurs préférences.
Mes spécificités :
JMP Pro 15.2.1
Mac OS Catalina 10.15.7
Excel : version 16.49
J'espère que quelqu'un pourra vous aider. Merci!
Wendy,
Y a-t-il une mise à jour à ce sujet ?
J'ai un script qui définit certaines polices sur mes zones d'affichage, mais il s'avère que certains ordinateurs de l'organisation ont installé très peu de polices.
Ainsi, mes utilisateurs reçoivent de nombreuses fenêtres contextuelles indiquant « Police inconnue ». Plutôt que de tout rétablir aux 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 vers un support complet.J'ajouterai cette discussion à cette demande.Le cas d'utilisation typique est celui d'un script exécuté à partir d'une action interactive, telle que cliquer sur un bouton.
La documentation de l'option « Assistant Excel » est incluse aux emplacements suivants :
Je serai heureux de vous 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 modales JMP pour la fonction batchinteractive. La version pilotée par boutons du script sait vous devez être interactif et vous placer utilement dans un assistant interactif.
Aussi, Contourner l'assistant d'importation Excel dans le script a un meilleure réponse .
Enfin, si vous rencontrez le problème inverse et souhaitez utiliser l'assistant, consultez Forcer Open() à utiliser l'assistant Excel sans modifier les préférences
@Wendy_Murphrey les deux semblent difficiles à découvrir dans la documentation.
modifier : lien vers variation étrange avec SetFont