2014-12-27 172 views
1

我正在使用perl模塊WriteExcel將一個|分隔文本文件到xls文件,我使用下面的代碼這樣做使用Perl將csv文件轉換爲多選項卡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 

通過這個代碼,我可以將文件轉換成單個標籤的Excel。 我想知道我怎樣才能文本文件轉換爲多選項卡XLS文件時的行數超過65000

+1

同樣的方式..? – TLP 2014-12-27 17:08:39

+0

是通過使用相同的包。 – 2014-12-28 09:04:08

回答

1

您與這條線將您的工作表(有多個工作表excel文件)。

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

你需要做的是在你的循環,你的工藝線,如果你已經超過了限行檢查,如果你做了,更換工作手柄。

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

在你的代碼$行正在計算從哪裏? – 2014-12-28 09:05:08

+0

這就是你的'$ x'我猜。請記住總是選擇好的描述性變量名稱,這樣您就不會感到困惑。 – simbabque 2014-12-28 14:26:45

相關問題