Exporter le tableau de données vers Excel à l'aide de scriptsBonjour, j'essaie d'apprendre à exporter ma table de données vers Excel en utilisant des scripts et une certaine automatisation.
J'utilise save("") pour ouvrir une fenêtre "Enregistrer le fichier JMP sous" m'invitant à enregistrer le fichier. J'aimerais que le "Enregistrer en tant que type" soit défini sur *.xls au lieu de *.jmp afin de ne pas avoir à le changer à chaque fois. J'aimerais également définir le dossier par défaut qu'il choisit pour enregistrer le fichier. Est-ce que tout cela peut être fait dans les commandes scipting? Je suis un nouvel utilisateur et je recherche une solution simple. Merci pour tout conseil ! ~Shannon
Re : Exporter le tableau de données vers Excel à l'aide de scriptsC'est génial! Mais comment demander à l'utilisateur s'il remplace ou non un fichier existant ?
Re : Exporter le tableau de données vers Excel à l'aide de scriptsBonjour,
J'ai un problème avec de nombreux fichiers Excel qui ont été créés il y a longtemps avec d'énormes données, je suppose que ceux-ci ont été créés plus tôt. 2007 ou 2003. Chose étrange, le fichier ne fonctionne pas dans 95% des machines, il se bloque en ajoutant ou en supprimant une colonne, avec l'erreur 1000 et Execel.exe.
J'ai essayé avec 2 méthodes qui fonctionnaient bien mais ce n'est pas la solution dont j'ai besoin. Les fichiers contiennent du freezpan et lorsque je débloque cela fonctionne bien ou que je copie la feuille sur une nouvelle feuille, cela fonctionne bien même si le freezpan est activé.
Comment résoudre ce problème dans des centaines de fichiers ? Je suis coincé avec ce problème.
Merci en bien Adv.
Salutations
Fayçal
Re : Exporter le tableau de données vers Excel à l'aide de scriptsQuelque chose comme ça supprimerait une extension .jmp et ajouterait .xlsx. Si vous avez déjà sélectionné un fichier .xlsx dans le filtre, il ne fera rien et écrasera le fichier. Sachez que JMP est bon pour enregistrer XLSX, mais ne fait vraiment pas bien XLS.
dt = table de données actuelle();
filepath = pickFile("Choisissez un fichier à enregistrer", "c:\", {"Fichiers Excel|xlsx"}, 1, 1);
pos = Contient(chemin du fichier, ".xlsx");
if (pos == 0, filepath = Left(filepath, pos-1); filepath = filepath || ".xlsx");
dt << Enregistrer sous (chemin du fichier, fichier Excel);
Brian Corcoran
Développement JMP
Re : Exporter le tableau de données vers Excel à l'aide de scripts@ShannonK ,
Oui, vous avez raison. Si vous CHOISISSEZ un fichier déjà existant, l'extension est incluse. Cependant, s'il s'agit d'un NOUVEAU fichier, vous devrez inclure l'extension.
@Craige_Hales peut être en mesure de commenter davantage?
Re : Exporter le tableau de données vers Excel à l'aide de scriptsMerci pour votre aide. J'ai inclus le code de sauvegarde que vous avez suggéré mais j'obtiens une erreur : "Impossible d'enregistrer le fichier. Cible de données inconnue."
J'ai essayé en vain de résoudre l'erreur. Lorsque je vérifie la sortie de SaveFilePath, cela ressemble à ceci : "/C:/Users/jmp/name". Ma meilleure estimation du problème est que la fonction de sauvegarde n'ajoute pas le ".xlsx" au nom du fichier.
(J'utilise Windows mais "/C: ..." ne semble pas être un problème.)
Ai-je bien identifié l'erreur ? Des idées sur la façon dont je peux résoudre le problème?
Merci!
Shannon
Re : Exporter le tableau de données vers Excel à l'aide de scriptsSalut @ShannonK ,
Ainsi, la boîte de dialogue Choisir un fichier est uniquement responsable de la sécurisation du chemin et du nom de fichier que vous souhaitez. Donc dans ton exemple :
Disons:
path = "$DOCUMENTS" // this is shorthand for your "My Documents" folder<BR />
filtereddata = sorteddt << Subset(
(Selected Rows),
Columns(:YEARX, :PSU, :CASEID, :RATWGT, :VEHNO, :OCCNO, :DVTOTAL, :ROLLOVER, :GAD1, :PDOF1, :DOF1, :BODYTYPE, :AGE, :ROLE, :SEATPOS),
Output Table Name(filename)
);
SaveFilePath = Pick File(
"Save Filtered Data",
path,
{"Excel Files|xlsx;xls", "JMP Datatables|jmp", "Text Files|txt;csv;dat", "All Files|*"},
1,
saveFlag = 1
);
Après avoir sélectionné le dossier et choisi un nom pour le fichier, la variable SaveFilePath contiendra ces informations sous forme de chaîne.
Vous feriez alors ce qui suit :
SaveFilePath );filtereddata << Save(
Re : Exporter le tableau de données vers Excel à l'aide de scriptsC'est super, merci.
J'ai toujours 1 problème cependant. Comment puis-je lui dire quel fichier je sauvegarde? Je tape un nom de fichier pour l'enregistrer sous, mais rien n'apparaît dans mon dossier. Je me demande si c'est parce qu'il n'a rien à sauvegarder?
Je crée une table de données, puis j'exécute le code SafeFileWindow que vous avez suggéré. Je m'excuse s'il me manque quelque chose de simple. Je suis nouveau dans ce domaine ! (De plus, pour une raison quelconque, la fenêtre de sauvegarde du fichier apparaît avant que la table de données n'apparaisse. En d'autres termes, la fenêtre de sauvegarde du fichier n'est pas la fenêtre active après l'exécution de ce code.)
Merci pour votre aide.
Voici une partie de mon code :
données filtrées = sorteddt << Sous-ensemble(
(Lignes sélectionnées),
Colonnes(:YEARX, :PSU, :CASEID, :RATWGT, :VEHNO, :OCCNO, :DVTOTAL, :ROLLOVER, :GAD1, :PDOF1, :DOF1, :BODYTYPE, :AGE, :ROLE, :SEATPOS),
Nom de la table de sortie (nom de fichier)
);
SaveFileWindow = Choisir un fichier(
"Enregistrer les données filtrées",
chemin,
{"Fichiers Excel|xlsx;xls", "Tableaux de données JMP|jmp", "Fichiers texte|txt;csv;dat", "Tous les fichiers|*"},
1,
saveFlag = 1
);
Re : Exporter le tableau de données vers Excel à l'aide de scripts@ShannonK
Essayez ceci, en remplaçant "" par le chemin du dossier que vous souhaitez voir apparaître initialement :
SaveFileWindow = Pick File(
"Save File",
"<DEFAULT folder="" path="">",
{"Excel Files|xlsx;xls", "JMP Datatables|jmp", "Text Files|txt;csv;dat", "All Files|*"},
1,
saveFlag = 1
);
</DEFAULT>
Vous pouvez en savoir plus sur la fonction Pick File sur : http://www.jmp.com/support/help/13/Select_a_Directory_or_File.shtml