Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMP<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho un XLS (BigData.xls) con schede della cartella di lavoro denominate "Stati Uniti", "Canada" e "Irlanda".
Ho uno script che deve solo aprire/leggere la scheda Canada.Esiste un comando di script JMP per farlo?Sto cercando di evitare di utilizzare le finestre di dialogo manuali per accedere alla scheda Canada.
Grazie!
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPDavide, grazie come sempre. Prenderò in prestito parte di questo codice per ottenere prestazioni coerenti tra le varianti della v10 che abbiamo internamente.
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPUn metodo grezzo (ma efficace) che ho utilizzato in passato è stato quello di aprire l'intera cartella di lavoro in modo invisibile, quindi chiudere quelle che non volevo.Controlla le tabelle che sono presenti dopo l'Aperto rispetto a quelle che erano aperte prima e che ti danno i nomi delle cartelle di lavoro nel foglio di calcolo.
Come hai notato, le preferenze dell'utente possono causare un problema: ecco uno schema di codice da rilevare per una preferenza, impostarlo su ciò che ti serve, quindi ripristinarlo:
// 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
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPL'ho appena provato nel codice e anche un altro utente lo ha testato. Ho scoperto che le preferenze dell'utente hanno la precedenza sull'argomento della funzione. Nella JSL specifico quale foglio aprire, ma se la preferenza dell'utente dice di richiedere, viene richiesto! Questo sembra controintuitivo per l'uso della funzione...
[Modifica] Il mio utente ha 10.0.0 e la preferenza stava sovrascrivendo il codice. La mia macchina ha 10.0.2 e il codice ha vinto la preferenza. Ovviamente, non ho visto nulla nella documentazione "Novità della versione 10.0.x" su questa funzione...
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPL'ho appena trovato oggi (l'opzione dei fogli di lavoro del comando Apri), che è stato molto utile. Tuttavia, non è apparso nelle pagine della guida dell'applicazione, il che sarebbe stato più utile!
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPMentre la discussione precedente aiutava, la sintassi non era corretta.Il nome del foglio di lavoro deve essere racchiuso tra parentesi quadre ed è necessario aggiungere un $ alla fine del nome del foglio di lavoro.Quindi, se il mio foglio di calcolo aveva il foglio di lavoro chiamato demo, la sintassi corretta è:
FullyQualifiedFile = "c:\$user\ResearchData\FY2012.xls";
ODB_String = "DSN=Excel Files;DBQ=" || FullyQualifiedFile;
dt = Open Database(ODB_String,"SELECT * FROM [demo$]");
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPSe si utilizza Open Database() invece di Open(), è possibile specificare singoli fogli nella stringa SQL.
Dai un'occhiata a questa vecchia discussione:
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPJMP 8.0.1
Qualche soluzione suggerita?
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPSpiacenti, avrei dovuto specificare che questa opzione è stata aggiunta in JMP 10.
Stai usando JMP 10 o qualcosa di precedente?
-Jeff
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPNon ha funzionato.TUTTI i fogli di lavoro si sono aperti quando ho specificato Fogli di lavoro ("piccolo" ) o Fogli di lavoro ( {"Piccolo"} )
Re: Apertura di una cartella di lavoro XLS specifica all'interno di uno script JMPPuoi utilizzare la parola chiave Fogli di lavoro():
open("C:\data\cars.xlsx", Worksheets("small"));
Importa più fogli di lavoro includendo i nomi dei fogli di lavoro tra parentesi:
open("C:\data\cars.xlsx", Worksheets( {"small", "medium", "large"} ));