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 trabajo 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 la tabla JMP no cambian de nombre y hay ventanas emergentes modales que muestran que me gustaría que se cerraran usando un script.
Adjunto datos de Big Class formateados como un libro de trabajo de Excel que puede cargar en SharePoint.También se adjunta el guión.Asegúrese de cambiar las rutas codificadas y los nombres de los archivos en su sitio de SharePoint.
¡Gracias!
Guión:
// Ruta de SharePoint, copie el enlace de SharePoint y luego elimine todo después de "?"
ruta = {"https: // << su sitio >> /Big%20Class.xlsx? ",
"https: // << su sitio >> /Big%20Class_2000.xlsx? "};
// Archivo de SharePoint, copie el enlace de SharePoint y luego elimine todo después de "?" y agregue "descargar = 1"
archivo = {"https: // << su sitio >> /Big%20Class.xlsx?download=1 ",
"https: // << su sitio >> /Big%20Class_2000.xlsx?download=1 "};
Lote interactivo (1);
For (i = 1, i <= N elementos (ruta), i ++, // bucle para rutas para sobresalir libros de trabajo
Web (ruta [i], ventana JMP);
For (i = 1, i <= N elementos (archivo), i ++, // bucle para archivos de Excel
dt = Abierto (
archivo [i],
Hojas de trabajo ("Clase grande"),
Utilizar para todas las hojas (1),
Concatenar hojas de trabajo (0),
Crear columna de concatenación (0),
Configuración de la hoja de trabajo (
1,
Tiene encabezados de columna (1),
Número de filas en encabezados (1),
Los encabezados comienzan en la fila (1),
Los datos comienzan en la fila (2),
Los datos comienzan en la columna (1),
Los datos terminan en la fila (0),
Los datos terminan en la columna (0),
Filas extendidas replicadas (1),
Encabezados expandidos replicados (0),
Suprimir filas ocultas (1),
Suprimir columnas ocultas (1),
Suprimir columnas vacías (1),
Tratar como jerarquía (0),
Pila de varias series (0),
Importar colores de celda (0),
Límite de detección de columna (0),
Cadena de separador de columnas ("-"),
),
"Invisible",
);
Ventana ("Navegador web") << cerrar ventana; // cierra la ventana web de JMP
);
name = {"Gran clase", "Gran clase 2000"}; // cambiar los nombres de las tablas ESTO NO ESTÁ FUNCIONANDO
Para (i = 1, i <= N elementos (nombre), i ++,
dt << Establecer nombre (nombre [i])
);
Lote interactivo (0);
);
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>La adición de dt = list () funciona.
¡Gracias!