JSL - Importieren eines bestimmten Excel-Arbeitsblatts und Ändern<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Zunächst verwende ich JMP 11
Ich versuche, ein Vorlagenskript zu erstellen, das meine Analysten in Zukunft verwenden können. Ich bin neu in JSL und versuche herauszufinden, wie man ein bestimmtes Arbeitsblatt in JSL importiert, dann bestimmte Variablen so ändert, dass sie numerisch sind, und eine neue Berechnung hinzufügt.
Wenn ich den Importteil dieses Codes versuche, öffnet er den Importassistenten, anstatt eine neue Datentabelle mit dem Namen "Our Data" zu erstellen.
--
dtmain = New Table("Unsere Daten",
Open("C:\Testdaten.xlsx",
Arbeitsblätter ("Endgültige Daten"),
)
);
Aktuelle Datentabelle (dtmain);
Spalte (dtmain, "Typ") <
Spalte (dtmain, "Ergebnis1) <
Spalte (dtmain, "Ergebnis2") <
Neue Spalte( "Ergebnisverhältnis",
Numerisch,
Kontinuierlich,
Format( "Beste", 12 ),
Formel( :Ergebnis1 / :Ergebnis2 )
);
Betreff: JSL - Importieren eines bestimmten Excel-Arbeitsblatts und ÄndernAlternativ gibt es die Funktion „Pick File()“ zur Auswahl der konkreten Datei im Dateipfad, die in die Open()-Funktion eingebunden werden kann:
Open(Pick File(
"Select JMP File",
"$DOCUMENTS",
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
"newJmpFile.jmp"
),
Worksheets( "Sheet 1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
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( "-" )
)
);Oder eine andere Möglichkeit besteht darin, die Excel-Datei immer mit demselben Namen zu benennen, damit das Skript Open() mit diesem spezifischen Namen verwendet werden kann:
Open(
"C:\Desktop\ExcelFile.xlsx",
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
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( "-" )
)
);
Betreff: JSL - Importieren eines bestimmten Excel-Arbeitsblatts und ÄndernSie können den Worksheets-Teil nicht außerhalb von Open haben, da er sich auf die zu öffnende Datei bezieht.Es gibt wirklich keine Möglichkeit, Standardeinstellungen für ein allgemeines Öffnen in JSL festzulegen.Die JSL soll bekannte Blätter mit bekannten Namen und Einstellungen öffnen.Es tut uns leid.
Brian Corcoran
Betreff: JSL - Importieren eines bestimmten Excel-Arbeitsblatts und ÄndernWie ist das Format, wenn wir eine Datei öffnen möchten?
Ich habe das benutzt, aber es hat nicht funktioniert
Offen ();
Arbeitsblätter ( "Planeten" ) ,
Für alle Blätter verwenden ( 1 ) ,
Arbeitsblätter verketten ( 0 ) ,
Verkettungsspalte erstellen ( 0 ) ,
1 ,
Hat Spaltenüberschriften ( 1 ) ,
Anzahl der Zeilen in Kopfzeilen ( 1 ) ,
Kopfzeilen beginnen in Zeile ( 2 ) ,
Daten beginnen in Zeile ( 3 ) ,
Daten beginnen in Spalte ( 1 ) ,
Daten enden auf Zeile ( 0 ) ,
Daten enden auf Spalte ( 0 ) ,
Replizierte überspannte Zeilen ( 1 ) ,
Ausgeblendete Zeilen unterdrücken ( 1 ) ,
Ausgeblendete Spalten unterdrücken ( 1 ) ,
Als Hierarchie behandeln ( 0 )
));
Betreff: JSL - Importieren eines bestimmten Excel-Arbeitsblatts und ÄndernJa Dankeschön! Ich hatte das zuvor mit meinem vorherigen Code versucht, und es öffnete eine Datentabelle mit nur einer leeren Spalte. Dies tun mit die oben erwähnte Codeänderung hat funktioniert.
Ich danke dir sehr!
Betreff: JSL - Importieren eines bestimmten Excel-Arbeitsblatts und ÄndernDer einfachste Weg, um den Teil „Datei öffnen“ der JSL korrekt zu erhalten, besteht darin, die Datei zuerst mit der Benutzeroberfläche und dem Excel-Assistenten zu öffnen.Dann sehen Sie in der geöffneten Tabelle ein Quellskript.Dieses Skript enthält die JSL, die zum erneuten Öffnen der Tabelle auf genau die gleiche Weise erforderlich ist.Sie können auf das Quellskript kontextklicken und Bearbeiten auswählen, um die JSL zu extrahieren.Ein Beispiel aus einer Tabelle von mir ist:
Offen (
"C:\Testdaten\excel\Excel 2007+\MultipleDiffSettings.xlsx" ,
Arbeitsblätter ( "Planeten" ) ,
Für alle Blätter verwenden ( 1 ) ,
Arbeitsblätter verketten ( 0 ) ,
Verkettungsspalte erstellen ( 0 ) ,
1 ,
Hat Spaltenüberschriften ( 1 ) ,
Anzahl der Zeilen in Kopfzeilen ( 1 ) ,
Kopfzeilen beginnen in Zeile ( 2 ) ,
Daten beginnen in Zeile ( 3 ) ,
Daten beginnen in Spalte ( 1 ) ,
Daten enden auf Zeile ( 0 ) ,
Daten enden auf Spalte ( 0 ) ,
Replizierte überspannte Zeilen ( 1 ) ,
Ausgeblendete Zeilen unterdrücken ( 1 ) ,
Ausgeblendete Spalten unterdrücken ( 1 ) ,
Als Hierarchie behandeln ( 0 )
));
Betreff: JSL - Importieren eines bestimmten Excel-Arbeitsblatts und ÄndernLeider öffnet es immer noch den Excel-Import-Assistenten. Es gibt mehrere Arbeitsblätter in der Excel-Datei, falls dies einen Unterschied macht, obwohl ich denke, dass der Befehl Arbeitsblätter verhindern würde, dass dies ein Problem darstellt.
Betreff: JSL - Importieren eines bestimmten Excel-Arbeitsblatts und ÄndernVersuchen Sie, die Befehle zum Öffnen und Umbenennen zu trennen:
dtmain = Offen ( "C:\Testdaten.xlsx" , Arbeitsblätter ( "Endgültige Daten" )) ;
dtmain << Name einsetzen ( "Unsere Daten" ) ;