Salut à tous,
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 scénario:
- 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 existe des fenêtres pop-up modales que j'aimerais avoir fermées à l'aide d'un script.
Je joins des données Big Class formatées en tant que 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:
// Chemin SharePoint, copiez le lien depuis SharePoint puis supprimez tout après "?"
chemin = {"https: // << votre site >> /Big%20Class.xlsx? ",
"https: // << votre site >> /Big%20Class_2000.xlsx? "};
// Fichier SharePoint, copiez le lien depuis SharePoint, puis supprimez tout après "?" et ajoutez "download = 1"
file = {"https: // << votre site >> /Big%20Class.xlsx?download=1 ",
"https: // << votre site >> /Big%20Class_2000.xlsx?download=1 "};
Batch Interactive (1);
For (i = 1, i <= N Items (path), i ++, // boucle pour les chemins vers les classeurs Excel
Web (chemin [i], fenêtre JMP);
For (i = 1, i <= N Items (file), i ++, // boucle pour les fichiers Excel
dt = Ouvert (
fichier [i],
Feuilles de travail ("Grande classe"),
Utiliser pour toutes les feuilles (1),
Concaténer les feuilles de calcul (0),
Créer une colonne de concaténation (0),
Paramètres de la feuille de calcul (
1,
A des en-têtes de colonne (1),
Nombre de lignes dans les en-têtes (1),
Les en-têtes commencent sur la ligne (1),
Les données commencent à la ligne (2),
Les données commencent sur la colonne (1),
Les données se terminent à la ligne (0),
Les données se terminent sur la colonne (0),
Lignes fractionnées répliquées (1),
En-têtes fractionnés répliqués (0),
Supprimer les lignes masquées (1),
Supprimer les colonnes masquées (1),
Supprimer les colonnes vides (1),
Traiter comme une hiérarchie (0),
Pile de séries multiples (0),
Importer les couleurs des cellules (0),
Détection de colonne limite (0),
Chaîne de séparateur de colonne ("-"),
),
"Invisible",
);
Fenêtre ("Navigateur Web") << fermer la fenêtre; // ferme la fenêtre Web JMP
);
name = {"Grande classe", "Grande classe 2000"}; // changer les noms de table CELA NE FONCTIONNE PAS
Pour (i = 1, i <= N Items (nom), i ++,
dt << Définir le nom (nom [i])
);
Batch Interactive (0);
);
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 créer dt une liste, puis le 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>L'ajout de dt = list () fonctionne.
Merci!