Cartella di lavoro di Excel con elenco dei nomiCiao,
Mi piace creare una cartella di lavoro Excel con nome di fogli e file definiti come nome di variabile.
Ecco la sceneggiatura che ho:
Nitems = 2;
listexcelsheet = {"||file1||","||file2||","||file3||"};
listexcelfile = {"||name1||","||name2||","||name3||"};
if (Nitems == 2,
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listexcelfile,listexcelsheet
)
);
Ho provato a usare Eval () e Parse () e non ho avuto successo. Apprezzo il vostro aiuto.
Grazie
Ri: cartella di lavoro di Excel con elenco dei nomiCiao Brian,
Grazie per la nota. Hai ragione. Prima ricevevo tre fogli e dovevo sovrascrivere il file precedente. Ho cancellato il file excel e poi ho eseguito la sceneggiatura e avevo due fogli che non conoscevo. Comunque, grazie per il vostro aiuto.
Ri: cartella di lavoro di Excel con elenco dei nomiIl tavolo che hai allegato aveva due fogli. Non riesco a riprodurre un caso in cui ottieni 3 fogli.
Brian
Ri: cartella di lavoro di Excel con elenco dei nomiCiao Brian,
Grazie. Volevo una cartella di lavoro e due fogli di lavoro all'interno. La sceneggiatura che ho provato per ultima crea tre fogli di lavoro. Ne volevo due.
Grazie per ulteriore aiuto.
Adamo
@briancorcoran ha scritto:
Ciao AT,
Ho pensato che fosse quello che volevi? Se si desidera una cartella di lavoro separata per ciascun foglio di lavoro, è necessario creare un ciclo e chiamare la funzione singolarmente per ciascuna tabella JMP.
Brian
Ri: cartella di lavoro di Excel con elenco dei nomiCiao AT,
Ho pensato che fosse quello che volevi? Se si desidera una cartella di lavoro separata per ciascun foglio di lavoro, è necessario creare un ciclo e chiamare la funzione singolarmente per ciascuna tabella JMP.
Brian
Ri: cartella di lavoro di Excel con elenco dei nomiGrazie Brian per il feedback. Ho provato il tuo script e creato tre fogli di lavoro.
Ho allegato l'output. Ho la versione JMP 13 pro.
Grazie
Ri: cartella di lavoro di Excel con elenco dei nomiCiao AT,
Temo che tu abbia incontrato un bug solo per Mac che è stato risolto nel prossimo JMP 14. Il problema è il modo in cui i nomi dei file vengono estratti sul Mac. Immagino che tu sia su JMP 13. L'unica soluzione di cui sono a conoscenza al momento per questo problema è fornire l'elenco dei nomi delle tabelle anziché il nome completo del file. In questo caso, è possibile riutilizzare le variabili del "nome", ma la Big Class dovrebbe avere uno spazio al suo interno. Un esempio che funziona è:
product_name = "ProductA";
process = "Process1";
//Tables need to be open to go into Excel Workbook
file1 = open("//Library/Application Support/JMP/13/Samples/Data/Abrasion.jmp";);
file2 = open("//Library/Application Support/JMP/13/Samples/Data//Big Class.jmp";);
//Worksheet names
name1 = "Abrasion";
name2 = "Big Class";
//listexcelfile = eval list({file1, file2});
listx = eval list({name1, name2});
listexcelsheet = eval list({name1, name2});
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listx, listexcelsheet
);
Mi dispiace per l'inconveniente causato.
Brian Corcoran
Sviluppo JMP
Ri: cartella di lavoro di Excel con elenco dei nomiCiao Cameron,
Uso la macchina Mac che potrebbe essere diversa dalla macchina Windows.
Ri: cartella di lavoro di Excel con elenco dei nomiGrazie Cameron. Mi dispiace, sto ancora ricevendo un errore. Ho allegato lo script che ho usato e il file di lop dice: "Impossibile trovare nessuna delle tabelle specificate. Salva non riuscito ".
product_name = "ProductA";
process = "Process1";
//Tables need to be open to go into Excel Workbook
file1 = open("$SAMPLE_DATA/Abrasion.jmp";);
file2 = open("$SAMPLE_DATA/Big Class.jmp";);
//Worksheet names
name1 = "Abrasion";
name2 = "BigClass";
listexcelfile = eval list({file1, file2});
listexcelsheet = eval list({name1, name2});
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listexcelfile, listexcelsheet
);
Se in Crea cartella di lavoro di Excel, scrivo prima listexcelsheet e poi listexcelfile, l'output è generato ma ha solo "Abraison.jmp". Anch'io ho allegato questo.
Grazie
Ri: cartella di lavoro di Excel con elenco dei nomiHai ottenuto il listexcelsheet e listexcelfile all'indietro nella funzione Crea cartella di lavoro di Excel (). Invertire quelli e dovrebbe funzionare.
Quando ho detto che avevi quei retroscena nella mia prima risposta, mi riferivo ai nomi. Sembravi nominare l'elenco di file "listexcelsheet" e l'elenco di fogli "listexcelfile". Esegui il mio script esattamente come indicato e dovrebbe funzionare.
Ho attaccato quello che ho ottenuto.
Ri: cartella di lavoro di Excel con elenco dei nomiGrazie Cameron. Ho provato il tuo script e creo solo un foglio di lavoro "Abrasione".
Ecco cosa ho usato:
product_name = "ProductA";
process = "Process1";
//Tables need to be open to go into Excel Workbook
file1 = open("$SAMPLE_DATA/Abrasion.jmp";);
file2 = open("$SAMPLE_DATA/Big Class.jmp";);
//Worksheet names
name1 = "Abrasion";
name2 = "BigClass";
listexcelfile = eval list({file1, file2});
listexcelsheet = eval list({name1, name2});
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listexcelsheet, listexcelfile
);
Ri: cartella di lavoro di Excel con elenco dei nomiDifficile da dire senza vedere il tuo codice esatto. Ecco cosa ho fatto con 2 tabelle dalla libreria di dati di esempio e entrambi i fogli di lavoro vengono visualizzati nella cartella di lavoro come previsto:
product_name = "ProductA";
process = "Process1";
//Tables need to be open to go into Excel Workbook
file1 = open("$SAMPLE_DATA/Abrasion.jmp";);
file2 = open("$SAMPLE_DATA/Big Class.jmp";);
//Worksheet names
name1 = "Abrasion";
name2 = "BigClass";
listexcelfile = eval list({file1, file2});
listexcelsheet = eval list({name1, name2});
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listexcelfile, listexcelsheet,
);Ri: cartella di lavoro di Excel con elenco dei nomiGrazie a Cameron per una soluzione rapida. Funziona ma ottengo solo uno dei fogli creati non tre e non ci sono errori. Cosa potrebbe esserci di sbagliato? Grazie
Ri: cartella di lavoro di Excel con elenco dei nomiPenso che quello che ti manca è la funzione Eval List (). Il modo in cui stai cercando di ottenere i valori di questi file non funzionerà. Invece, prova questo:
listexcelfile= eval list({file1, file2, file3});Lo stesso vale per la tua definizione di listexcelsheet.
Penso anche che le tue variabili listexcelfile e listexcelsheet siano state fatte all'indietro.