Je suis en train de rassembler du code dans lequel j'essaie de parcourir les fichiers d'ouverture et d'ajouter le fichier à la fin du fichier pour une table. Donc, si vous ouvrez trois fichiers, il l'ajoute à la fin du premier fichier de la table, mais j'ai deux problèmes, mais je ne parlerai que de celui-ci ici.
J'ajoute une colonne au chemin de la table de sortie, afin que je puisse garder une trace de l'endroit où elle allait. Voici donc le code, où cela fonctionne si nitems(selected_files) = 1, mais s'il est supérieur à 1, le résultat est vide, qu'est-ce que je fais de mal ? Voici le code :
default_directory = "C:";
// Open Dialog box to select input files
selected_files = Pick File("Select Input File",default_directory,{"Excel Files|xls;xlsx","All Files|*"},1,0,"",multiple);
file_name = selected_files;
all_data_table = Empty();
For(i=1, i <= nitems(selected_files), i++,
num = Char(i);
file_name[i] = Concat Items({"File",num});
out_here = Open(
selected_files[i],
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Invisible,
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 2 ),
Data Starts on Row( 3 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 0 ),
Suppress Hidden Columns( 0 ),
Suppress Empty Columns( 0 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
out_here << New Column("Path",Numeric,"Continuous",Formula(selected_files[i]));
out_here << New Column("File",Numeric,"Continuous",Formula(file_name[i]));
If( Is Empty( all_data_table ),
all_data_table = out_here;
,
all_data_table << Concatenate( out_here, Append to first table );
);
);
all_data_table << New Data View;Si vous exécutez ce code, vous verrez qu'avec un fichier sélectionné, il semble faire ce que je recherche, mais 2 ou plus, ce n'est pas le cas. Toute aide serait grandement appréciée!
Génial, cela fait totalement ce que je voulais, merci beaucoup, cela m'a fait me cogner la tête !
Le problème est que vous définissez les deux colonnes sur des formules qui utilisent les variables fichiers_sélectionnés[i] et nom_fichier[i]. Ainsi, lorsque vous continuez dans le script, ces valeurs changent à chaque fois que je change. Au lieu d'utiliser une formule, définissez les valeurs directement sur les valeurs souhaitées. De plus, puisque vous placez des valeurs de caractères dans ces deux colonnes, je vous recommande de les créer en tant que colonnes de caractères au lieu de colonnes numériques. Remplacez les deux lignes New Column par ceci à la place et je pense que vous obtiendrez ce que vous cherchez :
out_here << New Column("Path","Character","Nominal",Set Each Value(selected_files[i]));
out_here << New Column("File","Character","Nominal",Set Each Value(file_name[i]));