Abrir un libro de trabajo XLS específico dentro de un script JMP<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Tengo un XLS (BigData.xls) que tiene pestañas de libro de trabajo llamadas "Estados Unidos", "Canadá" e "Irlanda".
Tengo un script que solo necesita abrir / leer la pestaña Canadá. ¿Hay un comando de script JMP para hacer eso? Estoy tratando de evitar usar los diálogos manuales para tirar de la pestaña Canadá.
¡Gracias!
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPDave, gracias como siempre. Tomaré prestado algo de este código para obtener un rendimiento consistente en todas las variantes de v10 que tenemos internamente.
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPAcabo de probar esto en código y tengo un compañero de usuario para probarlo también. Descubrí que las preferencias del usuario tienen prioridad sobre el argumento de la función. En la JSL, yo especifico qué hoja abrir, pero si la preferencia del usuario dice que se le solicite, ¡se les solicita! Esto parece contrario al uso de la función ...
[Editar] Mi usuario tiene 10.0.0 y la preferencia fue anular el código. Mi máquina tiene 10.0.2 y el código ganó sobre preferencia. Por supuesto, no vi nada en la documentación de "Qué hay de nuevo en la versión 10.0.x" acerca de esta función ...
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPAcabo de encontrar esto hoy (la opción de hojas de trabajo del comando Abrir), que fue muy útil. Sin embargo, no apareció en las páginas de ayuda de la aplicación, ¡lo cual hubiera sido más útil!
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPSi se usa Open Database () en lugar de Open (), se pueden especificar hojas individuales en la cadena SQL.
Echa un vistazo a esta discusión anterior:
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPJMP 8.0.1
¿Alguna solución sugerida?
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPLo siento, debería haber especificado que esta opción se agregó en JMP 10.
¿Estás utilizando JMP 10 o algo anterior?
-Jeff
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPNo funciono TODAS las hojas de trabajo se abrieron cuando especifiqué Hojas de trabajo ("pequeño") o Hojas de trabajo ({"Pequeño"})
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPPuede utilizar la palabra clave Worksheets ():
open("C:\data\cars.xlsx", Worksheets("small"));
Importe varias hojas de trabajo incluyendo los nombres de las hojas de trabajo entre paréntesis:
open("C:\data\cars.xlsx", Worksheets( {"small", "medium", "large"} ));
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPSi bien la discusión anterior ayudó, la sintaxis no era correcta.El nombre de la hoja de trabajo debe estar entre corchetes y debe agregar un $ al final del nombre de la hoja de trabajo.Entonces, si mi hoja de cálculo tenía la hoja de trabajo llamada demostración, la sintaxis correcta es:
FullyQualifiedFile = "c:\$user\ResearchData\FY2012.xls";
ODB_String = "DSN=Excel Files;DBQ=" || FullyQualifiedFile;
dt = Open Database(ODB_String,"SELECT * FROM [demo$]");
Re: Abrir un libro de trabajo XLS específico dentro de un script JMPUn método tosco (pero efectivo) que he usado en el pasado era abrir todo el libro de trabajo de manera invisible y luego cerrar los que no quería.Verifique las tablas que están presentes después de Open versus las que estaban abiertas antes, y eso le da los nombres de los libros de trabajo en la hoja de cálculo.
Como habrá notado, las preferencias del usuario pueden causar un problema: aquí hay un patrón de código para detectar una preferencia, configurarlo según lo que necesita y luego restaurarlo:
// preference to check
searchPref = "Excel Has labels";
// check the preference
prefs = Char( Get Preferences() );
p = Pat Match( prefs, searchPref + "(" + Pat Arb() >> strResult + ")" );
If ( p == 0,
Write( "!NFailed to find value for " || searchPref )
,
result = Parse( strResult );
Show( result );
);
// set it to what you want
Set Preferences(Excel Has Labels(2));
// do your stuff
Open(nsSFEPM:pathMDSS, invisible)
// restore the user preference
Eval(Parse(Eval Insert("\[
Set Preferences(Excel Has Labels(^result^));
]\")));
-Dave