Mon but ici est de lier une table de données JMP à une feuille de calcul Excel. Pendant que les utilisateurs d'Excel remplissent la feuille de calcul, j'aimerais que la table de données se reprenne automatiquement (à l'ouverture ou en continu pendant l'ouverture) avec les nouvelles données. Je veux éliminer le besoin de recopier les nouvelles données à chaque fois en éliminant tout risque d'erreurs de copie et en validant finalement la population.Est-ce possible et si oui, comment cela se passe-t-il ?
Je ne suis pas familier avec les scripts; toute aide à la rédaction de scripts ou pointant vers d'autres blogs serait grandement appréciée.
Cordialement,
Jef
C'est exactement ce que j'aimerais réaliser.Je ne suis pas familier avec les scripts.Pouvons-nous en parler?
Merci,
Jef
Pour ajouter à ce que Hadley a écrit. Si j'ai bien compris votre demande, vous souhaitez mettre à jour le même tableau de données JMP avec les nouvelles données de la feuille Excel et ne pas simplement créer un nouveau tableau à partir de la nouvelle feuille Excel. Si ce dernier est vrai, Hadley a raison, ce serait le moyen le plus simple d'utiliser le script d'importation généré automatiquement et de le réexécuter chaque fois que vous souhaitez obtenir les nouvelles données (dans une nouvelle table de données).
Au cas où c'est ce que je pense que vous voulez enfin réaliser, cela pourrait aider:
Names default to here(1);
// Excel Sheet you get the new data from
excelFile = "Wetterdaten.xlsx";
// current data table - which has data from an earlier time point of the Excel file
cdt = Current Data Table();
// get the name of the JMP table and the current number of rows
cdtName = cdt << get name();
n_Rows = NRows();
// use the import script used when importing the Excel file the first time
// you need to adjust this if the Excel file will be changed in the structure or other columns have been added or placed to other positions.
dtHelp = Open(
excelFile,
Worksheets( {eval(cdtName)} ),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
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+ n_Rows ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 )
), Invisible
);
// Now just concatenate the JMP Table with the new imported data - but only with the data after the number of rows from the current JMP table.
cdt << Concatenate (dtHelp, Append to first table);
// delete helping table
Close(dtHelp);
Vous trouverez ci-joint un fichier zip avec un exemple complet utilisant des données météorologiques et des données d'importation, tous deux avec ce script inclus et vous pouvez exécuter le script qui appellera ensuite le fichier Excel, récupérera les données et les ajoutera à la table de données ouverte . Il y a aussi un document qui l'explique à nouveau (malheureusement en allemand, mais un traducteur en ligne devrait faire du bon travail, je l'ai créé il y a quelques années).
L'avantage est que toutes les modifications que vous avez apportées à la table de données, telles que les contrôles de qualité pour les "anciennes" données, persisteront et que les nouvelles colonnes de formules fonctionneront également pour les nouvelles données.
Ah, encore un commentaire au tableau Excel. Si vous modifiez dans la feuille Excel des données qui ont déjà été importées (c'est-à-dire après le numéro de ligne = nombre de lignes dans la table JMP), ces modifications ne seront pas mises à jour dans la table de données car nous importons uniquement ou mieux ajoutons des lignes après les lignes actuelles. .
Salut,
Pour ce faire, la méthode la plus simple et la plus simple consiste à faire glisser votre fichier Excel dans une fenêtre JMP ouverte, ce qui ouvrira l'assistant d'importation Excel.À partir de là, vous pouvez ajuster les paramètres d'importation et importer le tableau au format correct, que vous pouvez enregistrer.La table aura un script "source", qui, une fois pressé, réimportera la table mise à jour avec les nouvelles données.Cela aide-t-il à réaliser ce que vous essayez de faire ?