2014-12-27 5 views
1

perl 모듈 WriteExcel을 사용하여 a | XLS 파일로 구분 된 텍스트 파일, 정말csv 파일을 Perl을 사용하여 다중 탭 xls (excel) 파일로 변환

#!/usr/bin/perl -w 
use strict; 
use Spreadsheet::WriteExcel; 

# Create a new workbook and add a worksheet 
my $workbook = Spreadsheet::WriteExcel->new($filename); 
my $worksheet = $workbook->add_worksheet("Colorful Example"); 

open(FH,"<$my_path/source_file.txt") 
    or die "Cannot open file: $!\n"; 
my ($x,$y) = (0,0); 
while (<FH>){ 
    chomp; 
    my @list = split /\t/,$_; 
    foreach my $c (@list){ 
     $worksheet->write($x, $y++, $c); 
    } 
    $x++; $y=0; 
} 
close(FH); 
$workbook->close();  # Close Workbook 

이 코드에 의해 내가 하나의 탭 엑셀로 파일을 변환 할 수 있습니다 할 코드 아래 사용하고 있습니다. 내가 멀티 탭 XLS에 텍스트 파일을 변환 수 있는지 궁금 행의 수는 당신이 라인 워크 시트를 추가 65000

+1

같은 방식으로 ..? – TLP

+0

예. 동일한 패키지를 사용하십시오. 코드 $ rows에 –

답변

1

을 초과하면 파일 (여러 워크 시트를 가진 파일을 엑셀). 당신이해야 할 일은

my $worksheet = $workbook->add_worksheet("Colorful Example"); 

는 선 제한을 초과 한 경우 라인을 처리하는 루프 체크하고, 당신이 한 경우, 워크 시트 핸들을 교체합니다.

$worksheet = $workbook->add_worksheet('foo') if $rows > 65_000; 
+0

이 어디에서 계산 되나요? –

+0

그건 네가 생각하는'$ x' 일 것이다. 항상 이해하기 쉬운 변수 이름을 선택하여 혼동하지 않도록하십시오. – simbabque

관련 문제