Ciao a tutti,
Ho diverse cartelle di lavoro di Excel o365 archiviate in SharePoint che devo caricare in JMP e rinominare ciascuna tabella in base al nome del file della cartella di lavoro di Excel.
Ho trovato degli snippet di codice dalla comunità JMP per aiutarmi, grazie a tutti !!
Il copione:
- codifica i nomi dei file e i percorsi di SharePoint
- apre il sito di SharePoint
- individua il file excel
- apre / importa il file Excel
Tuttavia ci sono 2 problemi.I nomi delle tabelle JMP non vengono rinominati e vengono visualizzate finestre popup modali che vorrei chiudere utilizzando lo script.
Allego i dati di Big Class formattati come una cartella di lavoro di Excel che puoi caricare su SharePoint.Lo script è anche allegato.Assicurati di modificare i percorsi ei nomi dei file hardcoded nel tuo sito di SharePoint.
Grazie!
Script:
// Percorso SharePoint, copia il collegamento da SharePoint, quindi elimina tutto dopo "?"
percorso = {"https: // << il tuo sito >> /Big%20Class.xlsx? ",
"https: // << il tuo sito >> /Big%20Class_2000.xlsx? "};
// File SharePoint, copia il collegamento da SharePoint, quindi elimina tutto dopo "?" e aggiungi "download = 1"
file = {"https: // << il tuo sito >> /Big%20Class.xlsx?download=1 ",
"https: // << il tuo sito >> /Big%20Class_2000.xlsx?download=1 "};
Batch interattivo (1);
For (i = 1, i <= N Items (path), i ++, // loop for path to excel workbooks
Web (percorso [i], finestra JMP);
Per (i = 1, i <= N Items (file), i ++, // loop per file excel
dt = Open (
file [i],
Fogli di lavoro ("Big Class"),
Utilizzare per tutti i fogli (1),
Fogli di lavoro concatenati (0),
Crea colonna di concatenazione (0),
Impostazioni foglio di lavoro (
1,
Ha intestazioni di colonna (1),
Numero di righe nelle intestazioni (1),
Le intestazioni iniziano sulla riga (1),
I dati iniziano sulla riga (2),
I dati iniziano sulla colonna (1),
I dati terminano nella riga (0),
I dati terminano nella colonna (0),
Righe con spanning replicate (1),
Intestazioni con spanning replicate (0),
Elimina righe nascoste (1),
Elimina colonne nascoste (1),
Elimina colonne vuote (1),
Considera come gerarchia (0),
Stack di serie multiple (0),
Importa colori cella (0),
Limite rilevamento colonna (0),
Stringa separatore di colonna ("-"),
),
"Invisibile",
);
Finestra ("Browser Web") << chiudere la finestra; // chiude la finestra web di JMP
);
nome = {"Big Class", "Big Class 2000"}; // cambia i nomi delle tabelle QUESTO NON STA FUNZIONANDO
Per (i = 1, i <= N elementi (nome), i ++,
dt << Imposta nome (nome [i])
);
Batch interattivo (0);
);
Sembra che tu stia assegnando tutte le tabelle alla stessa variabile, dt.Quella variabile può contenere solo un riferimento a una singola tabella alla volta.Invece, potresti creare dt un elenco e quindi lasciare che memorizzi i riferimenti a tutte le tabelle di dati.Ecco come potrebbe apparire (non testato).
//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>L'aggiunta di dt = list () funziona.
Grazie!