有没有办法轻松采取3文本文件,并通过脚本变成一个多选项卡的Excel表?

有没有办法轻松采取3文本文件,并通过脚本变成一个多选项卡的Excel表?

文件是file1.txt,文件2.txt,file3.txt – 我想它输出到excelsheet1.xls 3个选项卡。

您没有提到文本文件的格式,所以真正的示例代码很困难,但是您可以使用Spreadsheet :: WriteExcel 。 查看用于创build新选项卡的add_worksheet()方法。

鉴于你说,每行是一个数字后面跟着文本我假设这是每行两个列与空格分隔第一和第二列,只有第一列中的数字。 如果不是这样,那么下面的正则expression式就需要调整。 这就是说,这是一些示例代码。

#!/usr/bin/env perl use strict; use warnings; use Spreadsheet::WriteExcel; sub read_file{ my $f = shift; my @row; open(my $fh, '<', $f) or die $!; while(<$fh>){ chomp; s/^(d+)s+//; # assuming format of "1 Text heren2 More textn" if(defined $1){ push(@row, [$1, $_]); } } close($fh) or die $!; return @row; } if($#ARGV < 1){ die "$0: file1 [file2 ... filen] output.xls\n"; } my $xl = Spreadsheet::WriteExcel->new(pop); foreach my $file (@ARGV){ if( -f $file){ my @rows = read_file($file); my $sheet = $xl->add_worksheet($file); for my $row (0..$#rows){ my @cols = @{$rows[$row]}; for my $col (0..$#cols){ $sheet->write($row, $col, $cols[$col]); } } } } 

input文件在命令行中给出并按顺序处理,将每个文件转换为以文件名命名的标签。 在一个或多个input文件名之后,输出文件名在命令行上最后给出。

编辑:现在包括他的评论中提到的改进FM和一个简单的CLI来指定输出文件的名称。