Hallo allerseits,
Ich habe mehrere Excel o365-Arbeitsmappen in SharePoint gespeichert, die ich in JMP laden und jede Tabelle basierend auf dem Dateinamen der Excel-Arbeitsmappe umbenennen muss.
Ich habe Codefragmente aus der JMP-Community gefunden, die mir helfen sollen. Vielen Dank an alle!
Das Skript:
- Hardcodiert die Dateinamen und SharePoint-Pfade
- öffnet die SharePoint-Website
- Findet die Excel-Datei
- öffnet / importiert die Excel-Datei
Es gibt jedoch 2 Probleme.Die Namen der JMP-Tabellen werden nicht umbenannt, und es gibt modale Popup-Fenster, in denen angezeigt wird, dass ich sie gerne mithilfe eines Skripts geschlossen hätte.
Ich füge Big Class-Daten hinzu, die als Excel-Arbeitsmappe formatiert sind und die Sie auf SharePoint hochladen können.Das Skript ist ebenfalls beigefügt.Stellen Sie sicher, dass Sie die fest codierten Pfade und Dateinamen in Ihre SharePoint-Website ändern.
Dankeschön!
Skript:
// SharePoint-Pfad, Link von SharePoint kopieren und alles nach "?"
path = {"https: // << Ihre Website >> /Big%20Class.xlsx? ",
"https: // << Ihre Website >> /Big%20Class_2000.xlsx? "};
// SharePoint-Datei, Link von SharePoint kopieren und alles nach "?" und füge "download = 1" hinzu
file = {"https: // << Ihre Website >> /Big%20Class.xlsx?download=1 ",
"https: // << Ihre Website >> /Big%20Class_2000.xlsx?download=1 "};
Batch Interactive (1);
Für (i = 1, i <= N Elemente (Pfad), i ++, // Schleife für Pfade, um Arbeitsmappen zu übertreffen
Web (Pfad [i], JMP-Fenster);
Für (i = 1, i <= N Elemente (Datei), i ++, // Schleife für Excel-Dateien
dt = Öffnen (
Datei [i],
Arbeitsblätter ("Big Class"),
Verwendung für alle Blätter (1),
Arbeitsblätter verketten (0),
Verkettungsspalte erstellen (0),
Arbeitsblatteinstellungen (
1,
Hat Spaltenüberschriften (1),
Anzahl der Zeilen in den Kopfzeilen (1),
Überschriften beginnen in Zeile (1),
Daten beginnen in Zeile (2),
Daten beginnen in Spalte (1),
Daten enden in Zeile (0),
Daten enden in Spalte (0),
Replizierte gespannte Zeilen (1),
Replizierte übergreifende Header (0),
Versteckte Zeilen unterdrücken (1),
Versteckte Spalten unterdrücken (1),
Leere Spalten unterdrücken (1),
Als Hierarchie behandeln (0),
Mehrreihenstapel (0),
Zellfarben importieren (0),
Grenzwertspaltenerkennung (0),
Spaltentrennzeichenfolge ("-"),
),
"Unsichtbar",
);
Fenster ("Webbrowser") << Fenster schließen; // schließt das JMP-Webfenster
);
name = {"Big Class", "Big Class 2000"}; // Tabellennamen ändern DAS FUNKTIONIERT NICHT
Für (i = 1, i <= N Items (Name), i ++,
dt << Set Name (Name [i])
);
Batch Interactive (0);
);
Es sieht so aus, als würden Sie alle Tabellen derselben Variablen zuweisen, dt.Diese Variable kann jeweils nur einen Verweis auf eine einzelne Tabelle enthalten.Stattdessen können Sie dt zu einer Liste erstellen und dann Verweise auf alle Datentabellen speichern.So könnte das aussehen (nicht getestet).
//SharePoint path, copy link from SharePoint then delete everything after "?"
path = {"https://<<YOUR site="">>/Big%20Class.xlsx?", "https://<<YOUR site="">>/Big%20Class_2000.xlsx?"};
//SharePoint file, copy link from SharePoint then delete everything after "?" and add "download=1"
file = {"https://<<YOUR site="">>/Big%20Class.xlsx?download=1",
"https://<<YOUR site="">>/Big%20Class_2000.xlsx?download=1"};
Batch Interactive( 1 );
//Make an empty list to store references to all data tables
dt = list();
For( i = 1, i <= N Items( path ), i++, //loop for paths to excel workbooks
Web( path[i], JMP window );
For( i = 1, i <= N Items( file ), i++, //loop for excel files
dt[i] = Open(
file[i],
Worksheets( "Big Class" ),
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( "-" ),
),
"Invisible",
);
Window( "Web Browser" ) << close window; //closes the JMP web window
);
name = {"Big Class", "Big Class 2000"}; //change table names THIS IS NOT WORKING
For( i = 1, i <= N Items( name ), i++,
dt[i] << Set Name( name[i] )
);
Batch Interactive( 0 );
);
</YOUR></YOUR></YOUR></YOUR>Das Hinzufügen von dt = list () funktioniert.
Dankeschön!