cómo crear un script para importar xls a jmptengo un problema con la importación de archivos xls a jmp usando script
Quiero importar este archivo usando la fila "7" como encabezado y agregar una nueva columna "Id. de lote" datos de relleno como datos de celda B3 (B6C141-02B5) en una nueva columna
Cómo puedo hacer esto
gracias

Tabla de datosRe: como crear un script para importar xls a jmpComo mencionaron txNelson e Ian, su tabla de datos no tiene un formato realmente bueno para un análisis estadístico; sin embargo, lamentablemente, este es el caso con bastante frecuencia en la industria, especialmente cuando se utilizan principalmente herramientas de hojas de cálculo. Los datos estadísticos deben estar en columnas y filas en forma rectangular siempre que sea posible. De lo contrario, debe especificar cada celda para el cálculo en lugar de usar vectores y matrices, lo que sería mucho más eficiente. Es por eso que txNelson importó la hoja dos veces y extrajo la información, como lo hizo Ian de manera similar.
Hace algún tiempo tuve una presentación de descubrimiento sobre consejos para importar datos de Excel que creo que aún se mantienen: Moverse por los obstáculos comunes al trabajar con datos de Excel en JMP (JMP Discovery Summit Europe 2016)
También escribió algunos blogs sobre la importación desde Excel. Casos diferentes al tuyo pero quizás útiles para otras situaciones:
Blogs de Martin sobre Excel y JMP
Re: como crear un script para importar xls a jmpCreo que necesitará saber un poco de JSL, y esto debería ayudarlo a comenzar. El "mejor" enfoque estará determinado por lo que pueda (y no pueda) suponer sobre la estructura de los datos más allá del ejemplo que ha dado.
Este código no es del todo robusto y asume que su archivo está en la carpeta 'descargas'. Si observa 'Ayuda> Libros> Guía de secuencias de comandos', probablemente pueda descubrir qué está haciendo (dependiendo de la experiencia de codificación que tenga).
NamesDefaultToHere(1);
dt = Open("$DOWNLOADS/test_import.xlsx");
lid = Column(dt, 2)[2];
colNames = {};
InsertInto(colNames, Column(dt, 1)[11]);
InsertInto(colNames, Column(dt, 2)[11]);
InsertInto(colNames, Column(dt, 3)[7]);
InsertInto(colNames, Column(dt, 4)[7]);
InsertInto(colNames, Column(dt, 5)[7]);
InsertInto(colNames, Column(dt, 6)[7]);
InsertInto(colNames, Column(dt, 1)[2]);
dt << deleteRows(1::11);
for(c=1, c<=NItems(colNames), c++, Column(dt, c) << setName(colNames[c]));
Column(dt, colNames[NItems(colNames)]) << setValues(Repeat(lid, NRows(dt)));
dt << setName("Data for lot "||lid);Re: como crear un script para importar xls a jmpAquí está el script para ingresar sus datos.
Utilicé el asistente JMP Excel para abrir el archivo de forma interactiva y luego copié el script de origen que creó JMP para colocarlo en el script.El script lee el archivo dos veces.Primero para leer los datos, y luego la segunda vez para leer el ID de lote.Luego agregué el código para permitirle seleccionar el archivo de Excel para importar, y el JSL requerido para crear la nueva columna de ID de lote.
names default to here(1);
path = Pick File();
dt = Open(
path,
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 7 ),
Headers Start on Row( 6 ),
Data Starts on Row( 13 ),
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( "-" )
)
);
dtLotID = Open(
path,
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 0 ),
Number of Rows in Headers( 7 ),
Headers Start on Row( 6 ),
Data Starts on Row( 3 ),
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( "-" )
)
);
lotID = dtLotID:Column 2[1];
close(dtLotID, nosave );
dt << New Column("Lot ID", Character, set each value(lotID));