Il mio scopo qui è quello di collegare una tabella di dati JMP a un foglio di calcolo Excel. Mentre gli utenti di Excel popolano il foglio di calcolo, vorrei che la tabella dei dati si ripopolasse automaticamente (all'apertura o continuamente mentre è aperta) con i nuovi dati. Voglio eliminare la necessità di ricopiare i nuovi dati ogni volta eliminando ogni rischio di errori di copia e convalidando infine la popolazione.È possibile e, in caso affermativo, come viene eseguito?
Non ho familiarità con lo scripting; qualsiasi aiuto nello scripting o nel puntamento ad altri blog sarebbe molto apprezzato.
Distinti saluti,
Jeff
Questo è esattamente ciò che vorrei eseguire.Non ho familiarità con lo scripting.Possiamo parlarne?
Grazie,
Jeff
Per aggiungere ciò che Hadley ha scritto. Se ho capito la tua richiesta, vuoi aggiornare lo stesso datatable JMP con i nuovi dati nel foglio Excel e non semplicemente creare una nuova tabella dal nuovo foglio Excel. Se quest'ultimo fosse vero, Hadley ha ragione, questo sarebbe il modo più semplice per procedere, utilizzando lo script di importazione generato automaticamente e rieseguindolo ogni volta che si desidera ottenere i nuovi dati (in una nuova tabella di dati).
Nel caso in cui sia quello che credo tu voglia finalmente ottenere, questo potrebbe aiutarti:
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);
In allegato c'è un file zip con un esempio completo che utilizza alcuni dati meteorologici e un dato di importazione, entrambi con questo script incluso e puoi eseguire lo script che chiamerà quindi il file excel, prenderà i dati e lo aggiungerà alla tabella dei dati aperti . Inoltre c'è un documento che lo spiega di nuovo (sfortunatamente in tedesco, ma un traduttore online dovrebbe fare un buon lavoro, l'ho creato alcuni anni fa).
Il vantaggio è che tutte le modifiche apportate alla tabella dei dati come i controlli di qualità per i "vecchi" dati persisteranno e anche le nuove colonne formula funzioneranno anche per i nuovi dati.
Ah, un altro commento alla tabella di Excel. Se modifichi i dati del foglio Excel che sono già stati importati (ovvero dopo il numero di riga = numero di righe nella tabella JMP) queste modifiche non verranno aggiornate nella tabella dei dati in quanto importiamo o meglio aggiungiamo solo righe dopo quelle attuali .
CIAO,
Il modo più facile e semplice per farlo potrebbe essere quello di trascinare il tuo file excel in una finestra JMP aperta, che aprirà l'Excel Import Wizard.Da lì, puoi regolare le impostazioni di importazione e importare la tabella nel formato corretto, che puoi salvare.La tabella avrà uno script "sorgente" che, se premuto, reimporterà la tabella aggiornata con i nuovi dati.Questo aiuta a raggiungere ciò che stai cercando di fare?