使用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。 我想知道如何将文本文件转换为多个选项卡xls(Excel文件有多个工作表)文件时行数超过65000。

你正在用这一行添加你的工作表。

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

你需要做的是检查你的循环,如果你已经超过了行限制,如果你这样做,replace工作表句柄。

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