¿Cómo creo un script JMP para importar varios libros de trabajo de Excel desde SharePoint?Hola a todos,
Tengo varios libros de trabajo de Excel o365 almacenados en SharePoint que necesito cargar en JMP y cambiar el nombre de cada tabla según el nombre de archivo del libro de Excel.
Encontré fragmentos de código de la comunidad JMP para ayudarme, ¡gracias a todos!
La secuencia de comandos:
- codifica los nombres de archivo y las rutas de SharePoint
- abre el sitio de SharePoint
- localiza el archivo de Excel
- abre/importa el archivo de Excel
Sin embargo, hay 2 problemas.Los nombres de las tablas JMP no cambian de nombre y hay ventanas emergentes modales que aparecen que me gustaría haber cerrado usando un script.
Adjunto datos de Big Class formateados como un libro de Excel que puede cargar en SharePoint.El guión también se adjunta.Asegúrese de cambiar las rutas codificadas y los nombres de los archivos de su sitio de SharePoint.
¡Gracias!
Guion:
//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>
secuencias de comandosRe: ¿Cómo creo un script JMP para importar varios libros de trabajo de Excel desde SharePoint?Agregar el dt = list() funciona.
¡Gracias!
Re: ¿Cómo creo un script JMP para importar varios libros de trabajo de Excel desde SharePoint?Parece que está asignando todas las tablas a la misma variable, dt.Esa variable solo puede contener una referencia a una sola tabla a la vez.En su lugar, puede hacer que dt sea una lista y luego dejar que almacene referencias a todas las tablas de datos.Esto es lo que podría parecer (no probado).
//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>