나는 openning 파일을 통해 반복하고 테이블 끝에 파일의 끝에 파일을 추가하려고하는 일부 코드를 조합했다. 따라서 기본적으로 3 개의 파일을 열면 테이블의 첫 번째 파일 끝 부분에 추가됩니다. 그러나 두 가지 문제가 있지만 여기에서 하나의 파일에 대해 이야기 할 것입니다.
출력 테이블 경로에 열을 추가하므로 어디로 가는지 추적 할 수 있습니다. 그래서 여기에 코드가 있는데, 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;이 코드를 실행하면 하나의 파일을 선택하면 찾고있는 것처럼 보이지만 2 개 이상은 나타나지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다!
신난다, 이것은 내가 원했던 것을 총체적으로한다, 내가 당신에게 나의 머리를 부딪치게했던 이같이 고맙다!
문제는 두 개의 열을 selected_files [i] 및 file_name [i] 변수를 사용하는 수식으로 설정한다는 것입니다. 따라서 스크립트를 계속 진행하면 변경 될 때마다 해당 값이 변경됩니다. 수식을 사용하는 대신 값을 원하는 값으로 직접 설정하십시오. 또한 두 개의 열에 문자 값을 배치하므로 숫자 열 대신 문자 열로 만들 것을 권장합니다. 이 두 개의 새로운 칼럼 라인을 대신 이것으로 변경하면 원하는 것을 얻을 수있을 것이라고 생각합니다 :
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]));