Excel-Arbeitsmappe mit NamenslisteHallo,
Ich möchte eine Excel-Arbeitsmappe mit dem Namen der Blätter und Dateien erstellen, die als Variablenname definiert sind.
Hier ist das Skript, das ich habe:
Nitems = 2;
listexcelsheet = {"||file1||","||file2||","||file3||"};
listexcelfile = {"||name1||","||name2||","||name3||"};
if (Nitems == 2,
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listexcelfile,listexcelsheet
)
);
Ich habe versucht, Eval () und Parse () zu verwenden und keinen Erfolg. Ich schätze Ihre Hilfe.
Vielen Dank
Betreff: Excel-Arbeitsmappe mit NamenslisteHallo Brian,
Danke für die Notiz. Du hast recht. Ich bekam zuerst drei Blätter und sollte die vorherige Datei überschreiben. Ich habe die Excel-Datei gelöscht und dann das Skript ausgeführt und das hatte zwei Blätter, die ich nicht kannte. Trotzdem, vielen Dank für Ihre Hilfe.
Betreff: Excel-Arbeitsmappe mit NamenslisteDer von Ihnen angefügte Tisch enthielt zwei Blätter. Ich kann keinen Fall reproduzieren, bei dem Sie 3 Blätter erhalten.
Brian
Betreff: Excel-Arbeitsmappe mit NamenslisteHallo Brian,
Vielen Dank. Ich wollte eine Arbeitsmappe und zwei Arbeitsblätter. Das Skript, das ich zuletzt ausprobiert habe, erstellt drei Arbeitsblätter. Ich wollte zwei.
Danke für die weitere Hilfe.
Adam
@briancorcoran schrieb:
Hallo AT,
Ich dachte, das wolltest du? Wenn Sie separate Arbeitsmappen für jedes Arbeitsblatt wünschen, müssen Sie einfach eine Schleife erstellen und die Funktion für jede JMP-Tabelle einzeln aufrufen.
Brian
Betreff: Excel-Arbeitsmappe mit NamenslisteHallo AT,
Ich dachte, das wolltest du? Wenn Sie separate Arbeitsmappen für jedes Arbeitsblatt wünschen, müssen Sie einfach eine Schleife erstellen und die Funktion für jede JMP-Tabelle einzeln aufrufen.
Brian
Betreff: Excel-Arbeitsmappe mit NamenslisteDanke Brian für das Feedback. Ich habe Ihr Skript ausprobiert und drei Arbeitsblätter erstellt.
Ich habe die Ausgabe angehängt. Ich habe Version JMP 13 Pro.
Vielen Dank
Betreff: Excel-Arbeitsmappe mit NamenslisteHallo AT,
Ich fürchte, Sie haben einen Mac-Fehler gefunden, der im kommenden JMP 14 behoben wurde. Das Problem ist die Art und Weise, wie die Dateinamen auf dem Mac extrahiert werden. Ich kann mir vorstellen, dass Sie bei JMP 13 sind. Die einzige Problemumgehung, die ich jetzt für dieses Problem kenne, besteht darin, die Liste der Namen der Tabellen und nicht den vollständigen Dateinamen anzugeben. In diesem Fall könnten Sie Ihre "name" -Variablen wiederverwenden, aber Big Class müsste ein Leerzeichen enthalten. Ein Beispiel, das funktioniert, ist:
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
);
Es tut mir leid für die Unannehmlichkeiten, die dies verursacht hat.
Brian Corcoran
JMP-Entwicklung
Betreff: Excel-Arbeitsmappe mit NamenslisteHallo Cameron,
Ich verwende eine Mac-Maschine, die sich möglicherweise von der Windows-Maschine unterscheidet.
Betreff: Excel-Arbeitsmappe mit NamenslisteDanke, Cameron. Es tut mir leid, dass ich immer noch einen Fehler bekomme. Ich habe ein Skript angehängt, das ich verwendet habe, und in der Lop-Datei steht: "Keine der angegebenen Tabellen konnte gefunden werden. Speichern fehlgeschlagen".
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
);
Wenn ich in Create Excel workbook zuerst listexcelsheet und dann listexcelfile schreibe, wird die Ausgabe erzeugt, aber nur "Abraison.jmp". Ich habe das auch angehängt.
Vielen Dank
Betreff: Excel-Arbeitsmappe mit NamenslisteSie haben das Listenexcelblatt und das Listenexcelfile rückwärts in der Funktion Create Excel Workbook () erhalten. Umkehren Sie diese und es sollte funktionieren.
Als ich sagte, dass Sie diese in meiner ersten Antwort rückwärts hatten, bezog ich mich auf die Namen. Sie schienen die Liste der Dateien "listexcelsheet" und die Liste der Blätter "listexcelfile" zu nennen. Führen Sie mein Skript genau so aus, wie es angegeben wurde, und es sollte funktionieren.
Ich habe angehängt, was ich bekam.
Betreff: Excel-Arbeitsmappe mit NamenslisteDanke, Cameron. Ich habe Ihr Skript ausprobiert und erstellt nur ein Arbeitsblatt "Abrasion".
Folgendes habe ich verwendet:
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
);
Betreff: Excel-Arbeitsmappe mit NamenslisteSchwer zu sagen, ohne den genauen Code zu sehen. Folgendes habe ich mit zwei Tabellen aus der Beispieldatenbibliothek gemacht, und beide Arbeitsblätter werden wie erwartet in der Arbeitsmappe angezeigt:
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,
);Betreff: Excel-Arbeitsmappe mit NamenslisteDanke Cameron für die schnelle Lösung. Es funktioniert, aber ich bekomme nur ein Blatt erstellt, nicht drei, und es wird kein Fehler angezeigt. Was könnte falsch sein? Vielen Dank
Betreff: Excel-Arbeitsmappe mit NamenslisteWas Sie vermissen, ist die Eval List () - Funktion. Die Art und Weise, wie Sie versuchen, die Werte dieser Dateien abzurufen, wird nicht funktionieren. Versuchen Sie stattdessen Folgendes:
listexcelfile= eval list({file1, file2, file3});Gleiches gilt für Ihre Definition von Listexcelsheet.
Ich denke auch, dass Sie Ihre Variablen listexcelfile und listexcelsheet rückwärts hatten.