我正在整理一些代码,我试图循环打开文件并将文件添加到文件末尾的表中。 因此,如果打开三个文件基本上它将它附加到表的第一个文件的末尾,但我有两个问题,但只会在这里讨论一个。
我在输出表路径中添加了一列,因此我可以跟踪它的去向。 所以这里是代码,如果nitems(selected_files)= 1,它可以工作,但如果它大于1,结果是空白的,我做错了什么?这是代码:
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;如果您运行此代码,您将看到选择了一个文件,它似乎可以执行我要查找的内容,但有两个或更多内容没有。 任何帮助将不胜感激!
太棒了,这完全符合我的要求,非常感谢你让我砰然一声!
问题是您要将两列设置为使用变量selected_files [i]和file_name [i]的公式。因此,当您继续完成脚本时,每次更改时这些值都会更改。不使用公式,而是将值直接设置为所需的值。此外,由于您将字符值放入这两列,我建议将它们创建为字符列而不是数字列。将两个New Column行更改为此,我认为您将获得您正在寻找的内容:
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]));