使用perl将csv文件转换为Multi tab xls(excel)文件

时间:2014-12-27 16:13:22

标签: excel perl csv

我使用perl模块WriteExcel来转换|将分隔的文本文件分隔成xls文件,我使用下面的代码来执行此操作

#!/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。 我想知道当行数超过65000时,如何将文本文件转换为多标签xls(具有多个工作表的excel文件)文件。

1 个答案:

答案 0 :(得分:1)

您正在使用此行添加工作表。

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

如果超出了行限制,您需要检查循环中处理行的位置,如果有,请替换工作表句柄。

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