Chers tous,
mon problème a probablement déjà été évoqué car il est assez basique mais je n'ai pas trouvé la solution à mon problème exact.
Je souhaite importer plusieurs fichiers avec la même structure, les manipuler de la même manière, puis en coller un sous-ensemble. J'ai effectué la partie importation et manipulation des données de la manière générique suivante :
dt = Open(
"PATH/File1.xlsx",
Worksheets( "Table1" ),
XXX
);
// New operation e.g. New column: Column 2
dt << New Column( "Column 2",
Numeric,
"Continuous",
Format( "Best", 12 )
);<BR /><BR />File1 = dt;<BR />File1 << Set Name("File1");<BR />Afin d'importer plus de fichiers, je copierais le même code dans le script et n'échangerais que "File1" par "File2", "File3" et ainsi de suite. Cela fonctionne mais la longueur du script devient assez importante car j'ai beaucoup de fichiers à importer.
J'ai aussi essayé l'option FMI. Lorsque j'ai choisi "Ouvrir plusieurs tables" (je ne veux pas qu'elles soient empilées), j'ai déjà des tables de données liées à des noms spécifiques et je n'ai pas pu les manipuler avec le code générique décrit ci-dessus.
Des idées pour des solutions plus élégantes ?
Merci beaucoup!
Vous pouvez essayer d'utiliser fonction() (jmp.com) ou expr(). Voici quelques options utilisant function() :
Names Default To Here(1);
open_and_modify = function({file_path}, {Default Local},
dt = Open(file_path, Worksheets("Table1"), XXX);
// New operation e.g. New column: Column 2
dt << New Column("Column 2", Numeric, "Continuous", Format("Best", 12));
dt << Set Name("File1");
return(dt);
);
dt1 = open_and_modify("PATH/File1.xlsx");
dt2 = open_and_modify("PATH/File2.xlsx");
dt3 = open_and_modify("PATH/File3.xlsx");
//or have a list of paths
file_paths = {"PATH/File1.xlsx", "PATH/File2.xlsx", "PATH/File3.xlsx"};
//create first concatenate before
table_list = {};
For Each({new_file_path}, files,
Insert Into(table_list, open_and_modify(new_file_path));
);