Bonjour,
Existe-t-il un moyen de modifier un fichier EXCEL existant (une seule ligne particulière) et de le sauvegarder dans le dossier d'origine à partir de jmp ?
Toute aide serait appréciée.
Merci!
Si vous utilisez le système d'exploitation Windows et connaissez un peu VBscript, vous pouvez le faire en utilisant Exécuter le programme.
Le script ci-joint utilise wscript (pour autant que je sache, toujours sous Windows). Il ouvre Big Class puis l'enregistre au format Excel pour émuler un classeur Excel existant.
Le simple VBscript modifie la valeur de la ligne E3 et colore la cellule en jaune. Ce script utilise JSL pour écrire le VBscript, cependant, le script peut exister et simplement être exécuté à partir de JMP ou de nombreuses autres méthodes.
JMP utilise wscript pour exécuter le VBscript enregistré. C'est une option pour mettre à jour un classeur et ne pas perdre les autres fonctionnalités d'Excel.
Dans l'esprit d'apprendre à pêcher plutôt que de distribuer du poisson, je vais vous indiquer la bonne direction. La première étape consiste à laisser JMP écrire le script pour que vous puissiez importer la table. Importez manuellement l'un de vos fichiers Excel, en utilisant l'assistant d'importation Excel si nécessaire. Le tableau résultant aura un script intitulé "Source" qui contient le script pour importer le fichier Excel. Cela pourrait ressembler à ceci :
Open(
"filename.xlsx",
Worksheets( "Sheet 1" ),
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( 1 ),
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( 0 ),
Column Separator String( "-" )
)
);
C'est le début de votre propre script. Copiez-le dans une fenêtre de script. Pour mettre un handle sur le tableau de données du fichier Excel importé, il suffit de mettre un " = " avant "Open(".
Ensuite, vous devez apporter toute modification au contenu de la table. Vous pouvez accéder à une valeur spécifique dans la ligne et la colonne souhaitées et définir la valeur en utilisant quelque chose comme ceci :
dt:<COLNAME>[<ROW number="">] =<DESIRED value=""></DESIRED></ROW></COLNAME>
Si le nom de la colonne contient des caractères spéciaux, utilisez dt:Name(" ")[ ].
Enfin, vous devez exporter les résultats. Il existe quelques autres articles sur la communauté qui vous guident dans l'enregistrement d'une table JMP au format .xlsx. En voici une récente : https://community.jmp.com/t5/Discussions/Saving-Data-Table-to-Excel-format/td-p/40392
Je vous encourage fortement à essayer de rassembler les pièces par vous-même. C'est la seule façon de devenir compétent en matière de script. Si vous êtes bloqué sur une pièce en particulier, nous sommes là pour vous aider.
Je recherche un script JSL qui me permette de faire cela.
Vous pouvez importer le fichier Excel, le modifier, puis l'exporter au format xlsx, mais vous perdrez ainsi toute fonctionnalité spécifique à Excel. Cela ne fonctionnerait que si vous disposiez d'une feuille de calcul contenant uniquement des en-têtes de colonnes et des données, sans formules, ni formatage spécial, etc.