Classeur Excel avec liste de nomsSalut,
J'aime créer un classeur Excel avec le nom des feuilles et des fichiers définis comme un nom de variable.
Voici le script que j'ai:
Nitems = 2;
listexcelsheet = {"||file1||","||file2||","||file3||"};
listexcelfile = {"||name1||","||name2||","||name3||"};
if (Nitems == 2,
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listexcelfile,listexcelsheet
)
);
J'ai essayé d'utiliser Eval () et Parse () et aucun succès. J'apprécie ton aide.
Merci
Re: classeur Excel avec liste de nomsSalut Brian,
Merci pour la note. Tu as raison. J'avais trois feuilles en premier et je devais écraser le fichier précédent. J'ai supprimé le fichier Excel et ensuite j'ai exécuté le script et qui avait deux feuilles que je ne connaissais pas. Quoi qu'il en soit, merci pour votre aide.
Re: classeur Excel avec liste de nomsLa table que vous avez jointe contenait deux feuilles. Je suis incapable de reproduire un cas où vous obtenez 3 feuilles.
Brian
Re: classeur Excel avec liste de nomsSalut Brian,
Merci. Je voulais un classeur et deux feuilles de calcul à l'intérieur. Le script que j'ai essayé en dernier crée trois feuilles de calcul. Je voulais deux.
Merci pour l'aide supplémentaire.
Adam
@briancorcoran a écrit:
Salut à,
Je pensais que c'était ce que tu voulais? Si vous souhaitez des classeurs distincts pour chaque feuille de calcul, il vous suffira de créer une boucle et d'appeler la fonction individuellement pour chaque table JMP.
Brian
Re: classeur Excel avec liste de nomsSalut à,
Je pensais que c'était ce que tu voulais? Si vous souhaitez des classeurs distincts pour chaque feuille de calcul, il vous suffira de créer une boucle et d'appeler la fonction individuellement pour chaque table JMP.
Brian
Re: classeur Excel avec liste de nomsMerci Brian pour les commentaires. J'ai essayé votre script et crée trois feuilles de calcul.
J'ai joint la sortie. J'ai la version JMP 13 pro.
Merci
Re: classeur Excel avec liste de nomsSalut à,
J'ai bien peur que vous n'ayez rencontré qu'un bogue Mac qui soit corrigé dans le prochain JMP 14 Le problème est la façon dont les noms de fichiers sont extraits sur le Mac. J'imagine que vous êtes sur JMP 13. La seule solution que je connaisse actuellement pour ce problème consiste à donner la liste des noms des tables, plutôt que le nom de fichier complet. Dans ce cas, vous pouvez réutiliser vos variables "name" mais Big Class devra avoir un espace. Un exemple qui fonctionne est:
product_name = "ProductA";
process = "Process1";
//Tables need to be open to go into Excel Workbook
file1 = open("//Library/Application Support/JMP/13/Samples/Data/Abrasion.jmp";);
file2 = open("//Library/Application Support/JMP/13/Samples/Data//Big Class.jmp";);
//Worksheet names
name1 = "Abrasion";
name2 = "Big Class";
//listexcelfile = eval list({file1, file2});
listx = eval list({name1, name2});
listexcelsheet = eval list({name1, name2});
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listx, listexcelsheet
);
Je suis désolé pour le désagrément que cela a causé.
Brian Corcoran
Développement JMP
Re: classeur Excel avec liste de nomsSalut Cameron,
J'utilise une machine Mac qui peut être différente de celle de Windows.
Re: classeur Excel avec liste de nomsMerci Cameron. Je suis désolé, je reçois toujours une erreur. J'ai joint le script que j'ai utilisé et le fichier lop indique: "Aucun des tableaux spécifiés n'a pu être trouvé. Échec de la sauvegarde".
product_name = "ProductA";
process = "Process1";
//Tables need to be open to go into Excel Workbook
file1 = open("$SAMPLE_DATA/Abrasion.jmp";);
file2 = open("$SAMPLE_DATA/Big Class.jmp";);
//Worksheet names
name1 = "Abrasion";
name2 = "BigClass";
listexcelfile = eval list({file1, file2});
listexcelsheet = eval list({name1, name2});
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listexcelfile, listexcelsheet
);
Si je crée un classeur Excel, j'écris d'abord listexcelsheet, puis listexcelfile, le résultat est généré mais ne contient que "Abraison.jmp". J'ai joint cela aussi.
Merci
Re: classeur Excel avec liste de nomsVous avez les listes listexcelsheet et listexcelfile à l'envers dans la fonction Create Excel Workbook (). Inverser ceux-ci et cela devrait fonctionner.
Lorsque j'ai dit que vous aviez ces problèmes à l'envers dans ma première réponse, je faisais référence aux noms. Vous avez semblé nommer la liste des fichiers "listexcelsheet" et la liste des feuilles "listexcelfile". Exécuter mon script exactement comme donné et cela devrait fonctionner.
J'ai attaché ce que j'ai eu.
Re: classeur Excel avec liste de nomsMerci Cameron. J'ai essayé votre script et ne crée qu'une seule feuille de travail "Abrasion".
Voici ce que j'ai utilisé:
product_name = "ProductA";
process = "Process1";
//Tables need to be open to go into Excel Workbook
file1 = open("$SAMPLE_DATA/Abrasion.jmp";);
file2 = open("$SAMPLE_DATA/Big Class.jmp";);
//Worksheet names
name1 = "Abrasion";
name2 = "BigClass";
listexcelfile = eval list({file1, file2});
listexcelsheet = eval list({name1, name2});
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listexcelsheet, listexcelfile
);
Re: classeur Excel avec liste de nomsDifficile à dire sans voir votre code exact. Voici ce que j'ai fait avec 2 tables de la bibliothèque de données exemple et les deux feuilles de calcul apparaissent dans le classeur comme prévu:
product_name = "ProductA";
process = "Process1";
//Tables need to be open to go into Excel Workbook
file1 = open("$SAMPLE_DATA/Abrasion.jmp";);
file2 = open("$SAMPLE_DATA/Big Class.jmp";);
//Worksheet names
name1 = "Abrasion";
name2 = "BigClass";
listexcelfile = eval list({file1, file2});
listexcelsheet = eval list({name1, name2});
Create Excel Workbook(
"$Documents/JMP/"||product_name||"_"||process||".xlsx" ,
listexcelfile, listexcelsheet,
);Re: classeur Excel avec liste de nomsMerci Cameron pour la solution rapide. Cela fonctionne, mais je ne reçois qu’une des feuilles créées, pas trois, et il n’ya pas d’erreur. Quel pourrait être le problème? Merci
Re: classeur Excel avec liste de nomsJe pense que ce qui vous manque, c'est la fonction Eval List (). La façon dont vous essayez d'obtenir les valeurs de ces fichiers ne fonctionnera pas. Au lieu de cela, essayez ceci:
listexcelfile= eval list({file1, file2, file3});La même chose s'applique à votre définition de listexcelsheet.
Je pense aussi que vos variables listexcelfile et listexcelsheet ont été inversées.