Necesita ayuda para importar Excel, una hoja de trabajo específica con el título del libro para concatenarla con una tabla existenteTengo una gran cantidad de archivos de Excel desde los cuales transfiero datos a JMP para su análisis. Hasta hace poco, he estado haciendo esto de una manera muy medieval: abrí los archivos de Excel manualmente y copié la información relevante directamente en las tablas JMP. Si bien esto es sostenible, creo que la función de importación (junto con la concatenación para agregar a tablas de datos existentes) es una solución a largo plazo mucho mejor para mejorar la eficacia.
Mi información relevante se encuentra en la Hoja 4 de cada libro y está etiquetada como "ciclo". Necesito importar entre 4 y 20 libros de este tipo a la vez, con los que actualizar mis tablas JMP. Cada libro tiene un título de cadena, normalmente de 8 caracteres. Este es un identificador único del objeto que se está probando.
Mis preguntas son estas: ¿es posible para mí reemplazar el nombre de la tabla generada al importar (por ejemplo, ahora mismo si importo 8 archivos, las tablas generadas en JMP son "ciclo", "ciclo 2", "ciclo 3", etc.)? .) ¿Son los títulos de los libros de Excel originales (que en este ejemplo se convierten en "libro de trabajo 1", "libro de trabajo 2", "libro de trabajo 3", etc.)?
Mi siguiente pregunta es sobre la concatenación. ¿Es posible para mí escribir una secuencia de comandos que pueda analizar una celda específica (por ejemplo, la generada por su secuencia de comandos, que copia el título del libro en una columna específica al importar) y luego usar el valor dentro de esa celda para agregar? ¿La información de las columnas restantes a una tabla JMP existente?
Para aclarar, imaginemos que estoy probando un objeto, en este caso denominado "A71320". Tengo una tabla de datos JMP también llamada "A71320", que es una compilación de todos mis datos relevantes para este objeto de prueba. Cada nueva prueba genera un archivo de Excel, también denominado "A71320". Me gustaría importar este archivo usando su script. Si entiendo correctamente, copiará todos los datos de la hoja 4, "ciclo", creará una nueva tabla JMP, denominada "ciclo", y luego, dentro de esta nueva tabla, creará una nueva columna con 1 celda completa, "A71320". . Luego me gustaría ejecutar un script que verá esta celda "A71320", reconocerá una tabla existente dentro de JMP llamada "A71320" y agregará toda la información excepto la celda titular, desde "ciclo" hasta "A71320". es posible?
Mi más sincero agradecimiento por tomarse el tiempo de leer esta pregunta.
Antílope
La personalización en masaventanasRe: Necesito ayuda para importar una hoja de trabajo específica de Excel con el título del libro de trabajo para la concatenación con la tabla existenteEsto no parece ser una tarea difícil... sin embargo, los detalles específicos son demasiado ambiguos para intentar escribir un guión que satisfaga sus necesidades.Las muestras de sus libros de trabajo de Excel de entrada y las tablas de datos finales serían realmente útiles para intentar guiarlo a través del desarrollo de un script.
Re: Necesito ayuda para importar una hoja de trabajo específica de Excel con el título del libro de trabajo para la concatenación con la tabla existenteHola @txnelson ,
¡Te escucho! Por favor vea lo adjunto. Como se describió anteriormente, genero archivos A71322.xls "nuevos" con frecuencia. Cada instancia del archivo es única (tengo una estructura de sistema de archivos para almacenarlos/diferenciarlos) y cada uno corresponde a una "Ejecución" como se describe en la tabla .jmp. Por lo general, abro el archivo de Excel manualmente, luego copio todos los datos debajo de los encabezados de columna en la hoja de trabajo "ciclo", luego los pego en la tabla .jmp debajo de la última entrada en la columna "ID de ciclo". Las fórmulas para "Número de ciclo total" y "Ejecución" generan entradas correctas en la tabla de datos.
Hasta ahora he podido recrear lo anterior importando los libros de Excel, solo la hoja de ciclo y luego usando la función de concatenación base. Sin embargo, actualmente es lento y el hecho de que solo se importe el nombre de la hoja (lo que significa importar, digamos, 4 libros de trabajo conduce a "ciclo", "ciclo 1", "ciclo 2" y "ciclo 3") a veces confuso. Es más rápido para mí continuar manualmente como lo he hecho.
Sin embargo, mis conjuntos de datos crecen continuamente y, por lo tanto, estoy buscando una solución de secuencias de comandos. Llevo a cabo pruebas para varias baterías (es decir, A71321, A71311, etc.) y confío en que podré adaptar la solución proporcionada.
Una cosa más a tener en cuenta, el título de la celda se puede encontrar en la hoja "prueba", celda I-6 si eso es útil (sin embargo, esto no es tan flexible como poder importar el título del libro de trabajo en mi escenario. ).
Una vez más, se agradece su paciencia al leer mi solicitud y cualquier respuesta futura. Si necesita más información, estaré disponible para responder.
Saludos,
Antílope
Re: Necesito ayuda para importar Excel, hoja de trabajo específica con el título del libro de trabajo para concatenar a la tabla existenteAquí hay un guión que debería darle un buen comienzo para escribir su propio guión para completar su tarea.Asegúrese de estudiar el script proporcionado para comprender cómo funciona.
Names Default To Here( 1 );
// Set the object in question
object = "A71322";
// Get a list of input xls files to proces
// I am using the method where all files to be processed are moved into a single directory
dir = "C:\users\xxxx\input files\";
theFiles = Files In Directory( dir );
// Create the start of the final data table
dt = New Table( "Combined",
New Column( "Run",
formula(
If(
Row() == 1, 1,
:Cycle ID == 1 & Lag( :Cycle ID ) != 1, Lag( :Run ) + 1,
Lag( :Run )
)
)
),
New Column( "Total Cycle Number", formula( Row() ) )
);
// Loop through all of the file names and select only object in question files
For( i = 1, i <= N Items( theFiles ), i++,
If( Contains( theFiles[i], object ) == 1,
dtCycle = Open(
Char( dir ) || theFiles[i],
Worksheets( "cycle" ),
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( "-" )
)
);
dt = dt << concatenate( dtCycle, Append to first table( 1 ) );
// Clean up
Close( dtCycle, nosave );
)
);