Comment créer un script JMP pour importer plusieurs classeurs Excel à partir de SharePoint ?Salut tout le monde,
J'ai plusieurs classeurs Excel o365 stockés dans SharePoint que je dois charger dans JMP et renommer chaque table en fonction du nom de fichier du classeur Excel.
J'ai trouvé des extraits de code de la communauté JMP pour m'aider, merci à tous !!
Le script:
- code en dur les noms de fichiers et les chemins SharePoint
- ouvre le site SharePoint
- localise le fichier excel
- ouvre/importe le fichier Excel
Cependant il y a 2 problèmes.Les noms de table JMP ne sont pas renommés et il y a des fenêtres contextuelles modales qui s'affichent et que j'aimerais fermer à l'aide d'un script.
Je joins des données Big Class formatées sous forme de classeur Excel que vous pouvez télécharger sur SharePoint.Le script est également joint.Assurez-vous de modifier les chemins d'accès et les noms de fichiers codés en dur sur votre site SharePoint.
Merci!
Scénario:
//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 );
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 = 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 << Set Name( name[i] )
);
Batch Interactive( 0 );
);</YOUR></YOUR></YOUR></YOUR>
ScriptRe : Comment créer un script JMP pour importer plusieurs classeurs Excel à partir de SharePoint ?L'ajout de dt = list() fonctionne.
Merci!
Re : Comment créer un script JMP pour importer plusieurs classeurs Excel à partir de SharePoint ?Il semble que vous affectiez toutes les tables à la même variable, dt.Cette variable ne peut contenir qu'une référence à une seule table à la fois.Au lieu de cela, vous pouvez faire de dt une liste, puis la laisser stocker des références à toutes les tables de données.Voici à quoi cela pourrait ressembler (non testé).
//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>