원래 Excel에서 XML 파일을 열려고했습니다. 그러나 나이가 들수록 XML을 탭으로 구분 된 텍스트 파일로 구문 분석했습니다. 인터넷에서 올바른 구문을 발견했다고 생각했습니다. Excel 매크로로 기록한 값을 사용하여 아래 코드를 시도했습니다. 18 열 탭으로 구분 된 파일이 있습니다. "워크 시트"메서드를 호출 할 때 아래 코드의 마지막 줄에 오류가 발생합니다.Perl 및 OLE를 사용하여 Excel에서 탭으로 구분 된 텍스트 파일을 여는 방법은 무엇입니까?
오류 메시지 : ./PostProcessingDev.pl 라인에서 패키지 또는 객체를 참조하지 않고 방법 "워크 시트"를 호출 할 수 없습니다 (70)
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
Win32::OLE->Option(Warn => 3);
use strict;
my $Excel;
my $Sheet;
my $Workbook;
$Excel = CreateObject OLE "Excel.Application";
$Workbook = $Excel->Workbooks->OpenText({Filename =>"$inSelf->{'TXT'}",
Origin => xlMSDOS,
StartRow => 1,
DataType => xlDelimited,
TextQualifier => xlDoubleQuote,
ConsecutiveDelimiter => "False",
Tab => "True",
Semicolon => "False",
Comma => "False",
Space => "False",
Other => "False",
FieldInfo => [[1, xlTextFormat],
[2, xlTextFormat],
[3, xlTextFormat],
[4, xlTextFormat],
[5, xlTextFormat],
[6, xlTextFormat],
[7, xlTextFormat],
[8, xlTextFormat],
[9, xlTextFormat],
[10, xlTextFormat],
[11, xlTextFormat],
[12, xlTextFormat],
[13, xlTextFormat],
[14, xlTextFormat],
[15, xlTextFormat],
[16, xlTextFormat],
[17, xlTextFormat],
[18, xlTextFormat]],
TrailingMinusNumbers => "True"});
$Sheet = $Workbook->Worksheets(1);
xSV 파일을 스플릿/정규식으로 구문 분석해서는 안됩니다. CSV와 동일하게 적절한 모듈을 사용하십시오 (텍스트 : CSV_CS) – DVK
빠른 답변 감사드립니다. Excel을 구문 분석기로 사용하지 않습니다. 구문 분석 부분에서는 필요한 mudules를 사용하거나 설치할 수 없으므로 직접 작성했습니다. 나는 진주 배열 안의 모든 것을하고있다. TSV 및 Excel 파일이 출력입니다. TSV를 여는 것과 비교하여 필자의 Excel 셀 셀 (Cell by Cell)은 TSV를 열고 Excel로 저장하기를 원할 때보 다 느리다 (10 분의 1 줄). 4 줄의 텍스트 파일에서 코드를 실행하면 OpenText 메서드 안에 갇히게됩니다. 어떻게되는지 어떻게 알 수 있습니까? OLE 메서드를 디버깅 할 수 있습니까? – user617474
나는 당신이 원하는 것을 제대로 이해하지 못했습니다. 확장자가 .CSV 인 CSV를 작성하면 Excel이 연결되어 직접 열 수 있습니다. 'OLE' 디버깅 당, 약간 까다 롭지 만, 초기화 후에'$ Excel -> {Visible} = 1;'을 넣을 수 있으며 Excel에서 무엇이 진행되고 있는지 볼 수 있습니다. – bvr