Mi propósito aquí es vincular una tabla de datos JMP a una hoja de cálculo de Excel. Mientras los usuarios de Excel llenan la hoja de cálculo, me gustaría que la tabla de datos se vuelva a llenar automáticamente (al abrir o continuamente mientras está abierta) con los nuevos datos. Quiero eliminar la necesidad de volver a copiar los nuevos datos cada vez, eliminando cualquier riesgo de errores de copia y, en última instancia, validando la población.¿Es esto posible y, de ser así, cómo se realiza?
No estoy familiarizado con las secuencias de comandos; cualquier ayuda con scripts o apuntando a otros blogs sería muy apreciada.
Atentamente,
jeff
Esto es exactamente lo que me gustaría realizar.No estoy familiarizado con las secuencias de comandos.¿Podemos hablar de esto?
Gracias,
jeff
Para agregar lo que Hadley ha escrito. Si entendí su demanda, desea actualizar la misma tabla de datos JMP con los nuevos datos en la hoja de Excel y no solo crear una nueva tabla a partir de la nueva hoja de Excel. Si esto último fuera cierto, Hadley tiene razón, esta sería la forma más fácil de hacerlo, usar el script de importación generado automáticamente y volver a ejecutarlo cada vez que desee obtener los nuevos datos (en una nueva tabla de datos).
En caso de que sea lo que creo que quieres lograr finalmente, esto podría ayudar:
Names default to here(1);
// Excel Sheet you get the new data from
excelFile = "Wetterdaten.xlsx";
// current data table - which has data from an earlier time point of the Excel file
cdt = Current Data Table();
// get the name of the JMP table and the current number of rows
cdtName = cdt << get name();
n_Rows = NRows();
// use the import script used when importing the Excel file the first time
// you need to adjust this if the Excel file will be changed in the structure or other columns have been added or placed to other positions.
dtHelp = Open(
excelFile,
Worksheets( {eval(cdtName)} ),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
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+ n_Rows ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 )
), Invisible
);
// Now just concatenate the JMP Table with the new imported data - but only with the data after the number of rows from the current JMP table.
cdt << Concatenate (dtHelp, Append to first table);
// delete helping table
Close(dtHelp);
Se adjunta un archivo zip con un ejemplo completo que usa algunos datos meteorológicos y datos de importación, ambos tienen este script incluido y puede ejecutar el script que luego llamará al archivo de Excel, tomará los datos y lo agregará a la tabla de datos abierta . También hay un documento que lo explica nuevamente (desafortunadamente en alemán, pero un traductor en línea debería hacer un buen trabajo, lo creé hace algunos años).
El beneficio es que todos los cambios que haya realizado en la tabla de datos, como los controles de calidad de los datos "antiguos", persistirán y también las nuevas columnas de fórmula funcionarán para los nuevos datos.
Ah, un comentario más a la tabla de Excel. Si cambia en los datos de la hoja de Excel que ya se han importado (es decir, después del número de fila = número de filas en la tabla JMP), estos cambios no se actualizarán en la tabla de datos, ya que solo importamos o, mejor dicho, agregamos filas después de las actuales. .
Hola,
La forma más fácil y sencilla de hacer esto podría ser arrastrar su archivo de Excel a una ventana abierta de JMP, que abrirá el Asistente de importación de Excel.Desde allí, puede ajustar la configuración de importación e importar la tabla en el formato correcto, que puede guardar.La tabla tendrá un script de "fuente", que, cuando se presiona, volverá a importar la tabla actualizada con los nuevos datos.¿Eso ayuda a lograr lo que estás tratando de hacer?