JSL: importación de una hoja de cálculo de Excel específica y modificación<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Primero, estoy usando JMP 11
Estoy tratando de crear un script de plantilla que mis analistas puedan usar en el futuro. Soy nuevo en JSL y estoy tratando de descubrir cómo importar una hoja de trabajo específica en JSL, luego modificar variables particulares para que sean numéricas y agregar un nuevo cálculo.
Cuando pruebo la parte de importación de este código, abre el asistente de importación en lugar de crear una nueva tabla de datos llamada "Nuestros datos".
--
dtmain = Nueva Tabla ("Nuestros Datos",
Abrir("C:\Datos de prueba.xlsx",
Hojas de trabajo ("Datos finales"),
)
);
Tabla de datos actuales (dtmain);
columna (dtmain, "Tipo") <
columna (dtmain, "Resultado1) <
columna (dtmain, "Resultado2") <
Nueva columna ("Proporción de resultados",
Numérico,
Continuo,
Formato( "Mejor", 12 ),
Fórmula ( :Resultado1 / :Resultado2 )
);
Re: JSL - Importación de una hoja de cálculo de Excel específica y modificaciónComo alternativa, existe la función "Seleccionar archivo()" para elegir el archivo específico en la ruta del archivo, que se puede integrar en la función Abrir():
Open(Pick File(
"Select JMP File",
"$DOCUMENTS",
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
"newJmpFile.jmp"
),
Worksheets( "Sheet 1" ),
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( "-" )
)
);Otra posibilidad es nombrar el archivo de Excel siempre con el mismo nombre para que el script Open() se pueda usar con este nombre específico:
Open(
"C:\Desktop\ExcelFile.xlsx",
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( 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( "-" )
)
);
Re: JSL - Importación de una hoja de cálculo de Excel específica y modificaciónNo puede tener la parte Hojas de trabajo fuera de Abrir, ya que se refiere al archivo para abrir.Realmente no hay una forma de especificar la configuración predeterminada para una apertura general en JSL.El JSL está diseñado para abrir hojas conocidas con nombres y configuraciones conocidas.Lo siento.
Brian Corcorán
Re: JSL - Importación de una hoja de cálculo de Excel específica y modificación¿Cómo es el formato si queremos abrir cualquier archivo?
Usé esto pero no funcionó
Abierto ();
Hojas de trabajo ( "Planetas" ) ,
Usar para todas las hojas ( 1 ) ,
Concatenar hojas de trabajo ( 0 ) ,
Crear columna de concatenación ( 0 ) ,
1 ,
Tiene encabezados de columna ( 1 ) ,
Número de filas en encabezados ( 1 ) ,
Los encabezados comienzan en la fila ( 2 ) ,
Los datos comienzan en la fila ( 3 ) ,
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 ) ,
Suprimir filas ocultas ( 1 ) ,
Suprimir columnas ocultas ( 1 ) ,
Tratar como jerarquía ( 0 )
));
Re: JSL - Importación de una hoja de cálculo de Excel específica y modificación¡Si, gracias! Lo había intentado antes con mi código anterior y estaba abriendo una tabla de datos con solo una columna en blanco. Haciendo esto con el cambio de código mencionado anteriormente funcionó.
¡Muchas gracias!
Re: JSL - Importación de una hoja de cálculo de Excel específica y modificaciónLa forma más fácil de obtener la parte de archivo abierto del JSL correcta sería abrir primero el archivo mediante la interfaz de usuario y el asistente de Excel.Luego, en la tabla abierta, verá un script de origen.Este script contiene el JSL necesario para reabrir la tabla exactamente de la misma manera.Puede hacer clic contextual en el script de origen y seleccionar Editar para extraer el JSL.Un ejemplo de una tabla mía es:
Abierto (
"C:\Testdata\excel\Excel 2007+\MultipleDiffSettings.xlsx" ,
Hojas de trabajo ( "Planetas" ) ,
Usar para todas las hojas ( 1 ) ,
Concatenar hojas de trabajo ( 0 ) ,
Crear columna de concatenación ( 0 ) ,
1 ,
Tiene encabezados de columna ( 1 ) ,
Número de filas en encabezados ( 1 ) ,
Los encabezados comienzan en la fila ( 2 ) ,
Los datos comienzan en la fila ( 3 ) ,
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 ) ,
Suprimir filas ocultas ( 1 ) ,
Suprimir columnas ocultas ( 1 ) ,
Tratar como jerarquía ( 0 )
));
Re: JSL - Importación de una hoja de cálculo de Excel específica y modificaciónDesafortunadamente, todavía está abriendo el Asistente de importación de Excel. Hay varias hojas de trabajo en el archivo de Excel si eso marca la diferencia, aunque creo que el comando Hojas de trabajo evitaría que eso sea un problema.
Re: JSL - Importación de una hoja de cálculo de Excel específica y modificaciónIntente separar los comandos de apertura y cambio de nombre:
principal = Abierto ( "C:\Datos de prueba.xlsx" , Hojas de trabajo ( "Datos finales" )) ;
principal << Escoger un nombre ( "Nuestros datos" ) ;