Combina dati di cartelle di lavoro diverse in formato stackCiao esperti JMP,
Sto cercando un'opzione per raggruppare i dati di diverse cartelle di lavoro Excel in un unico file JMP impilandoli sotto un'unica intestazione.
Si prega di suggerire l'opzione migliore per importare i dati da più cartelle di lavoro [ricordare che non è un foglio di lavoro]
A proposito, sto usando JMP 15 pro, su Mac OS.
Grazie in anticipo.
Ri: Combina dati da diverse cartelle di lavoro in formato stackSembra che la definizione dell'elenco "theFiles" sia errata o inesistente.Qual è il valore di theFiles e qual è il valore della variabile i?
Ri: Combina dati da diverse cartelle di lavoro in formato stackHo provato questo script e ho ricevuto il seguente errore. Non sono sicuro di cosa sia successo, mi chiedevo se potresti aiutare. Grazie.

Ri: Combina dati da diverse cartelle di lavoro in formato stack- Lo script che ho fornito si basa su un elenco JSL di cartelle di lavoro da leggere.Questo elenco è chiamato theFiles.Nel mio script, viene creato leggendo tutti i file .xlsx da una determinata struttura di directory/cartelle.Ma puoi cambiarlo e creare manualmente l'elenco.
theFiles = {"complete path to workbook 1", "complete path to workbook 2"
"complete path to workbook 3" };Un esempio inventato di quello che potrebbe essere il "percorso completo della cartella di lavoro n" è:"C:\Excel Data\2020\January\Department21 Monthly.xlsx"
Quindi puoi semplicemente rimuovere il codice nelle righe 3-11 e sostituirlo con la tua nuova definizione dell'elenco "theFiles" e lo script dovrebbe darti i risultati che stai chiedendo.
- Lo script leggerà già tutti i fogli di lavoro da qualsiasi cartella di lavoro che apre e li inserirà in un'unica tabella di dati JMP, che lo script aggiungerà quindi alla tabella di dati finale complessiva che lo script sta creando.
- Devi lavorare sulle tue competenze JMP JSL, in modo da poterti assumere la responsabilità dell'utilizzo e della manutenzione dello script.Oppure, se questo non rientra nella definizione del tuo lavoro, allora devi trovare il budget per assumere qualcuno che supporti il codice.Usare gli script che ti sono appena stati trasmessi è una cosa molto impegnativa da fare.JMP fornisce documentazione gratuita, esempi ed esercitazioni sull'apprendimento di JSL.Inoltre, forniscono corsi di formazione "a pagamento" su JSL.I partecipanti alla discussione della community di JMP sono lì per aiutare nella risoluzione dei problemi, ma sarebbe una decisione sbagliata presumere che saranno in grado di scrivere gli script finiti di cui potresti aver bisogno.
- Di seguito è riportata una modifica del mio script originale, inserendo al suo interno il codice di esempio per l'immissione manuale dei percorsi delle cartelle di lavoro che desideri leggere
Names Default To Here( 1 );
theFiles = {"complete path to workbook 1", "complete path to workbook 2"
"complete path to workbook 3" };
// create the base data table that all other tables will be concatenated to
dtFinal = New Table( "All Data" );
// loop through all .xlsx files and concatenate them to dtFinal
// the Concatenate Worksheets(1) will result in a single data table
// for each workbook read in and that single data table will be concatenated
// to the dtFinal
For( i = 1, i <= N Items( theFiles ), i++,
dt = Open(
theFiles[i],
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 ),
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( "-" )
)
);
// concatenate the new table with the dtFinal table
dtFinal << concatenate( dt, append to first table( 1 ) );
// delete the no longer needed data table dt
Close( dt, nosave );
);Ri: Combina dati da diverse cartelle di lavoro in formato stackGrazie per la rapida risposta, txnelson.
Ma onestamente, non sono bravo a modificare gli script .jsl. Non so quali siano tutti i passaggi che devo modificare nello script jsl condiviso sopra.
In questo momento ho "n" no. di tipi simili di cartelle di lavoro Excel in un'unica cartella. Ogni cartella di lavoro Excel ha più fogli, ma il mio obiettivo è raggruppare le informazioni del foglio di lavoro denominato "Dati" da tutte le cartelle di lavoro.
assumendo questo scenario, puoi per favore guidarmi ulteriormente per modificare lo script fornito.?
Inoltre, se hai qualche idea sulla procedura guidata "Importazione di più file", suggeriscila per lo scenario specificato. Posso raggruppare i dati di più cartelle di lavoro, se le singole cartelle di lavoro hanno un solo foglio di lavoro. Ma non so quale sia il passo giusto da seguire per lo scenario che ho fornito qui [es. se ciascuna cartella di lavoro ha più fogli di lavoro.]Ri: Combina dati da diverse cartelle di lavoro in formato stackDi seguito è riportato un esempio che dovrebbe darti un'idea di come affrontare questo problema.Probabilmente dovrai apportare modifiche in base ai dettagli di quali sono le tue strutture effettive
Names Default To Here( 1 );
// get the workbooks to be processed
theFiles = Files in Directory(<YOUR path="">, recursive(1) );
// reduce the list to only .xlsx entries
For( i = N Items( theFiles ), i >= 1, i--,
If( Word( -1, theFiles[i], "." ) != "xlsx",
Remove From( theFiles, i, 1 )
)
);
// create the base data table that all other tables will be concatenated to
dtFinal = New Table( "All Data" );
// loop through all .xlsx files and concatenate them to dtFinal
// the Concatenate Worksheets(1) will result in a single data table
// for each workbook read in and that single data table will be concatenated
// to the dtFinal
For( i = 1, i <= N Items( theFiles ), i++,
dt = Open(
theFiles[i],
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 ),
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( "-" )
)
);
// concatenate the new table with the dtFinal table
dtFinal << concatenate( dt, append to first table( 1 ) );
// delete the no longer needed data table dt
Close( dt, nosave );
);</YOUR>