使用perl将csv文件转换为多选项卡xls (excel)文件



我正在使用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 文件)文件。

您正在添加带有此行的工作表。

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

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

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

最新更新