博客建站模板,青岛缤纷网络科技有限公司,安装iis8 添加网站,中国百强城市榜单发布2021有个任务需要读好多eccel#xff0c;实际读起来并不方便#xff0c;变手工把ecxcel转换成文本文档#xff0c;心累。。。。于是闲暇写了个ecxcel转txt的小工具。主要是用的Spreadsheet::XLSX。 use strict;use warnings;use strict; use Spreadsheet::XLSX;die Usage … 有个任务需要读好多eccel实际读起来并不方便变手工把ecxcel转换成文本文档心累。。。。于是闲暇写了个ecxcel转txt的小工具。主要是用的Spreadsheet::XLSX。 use strict;use warnings;use strict; use Spreadsheet::XLSX;die Usage :perl $0 xlsx resultDIR\n unless ARGV2; ####需要输入需要转换的ecxel文件 以及生成结果文件的路径my $fileshift ARGV;my $dirshift ARGV;my $excelSpreadsheet::XLSX-new($file);foreach my $sheet({$excel-{Worksheet}}){ my $name$sheet-{Name};###sheet名字 open OUT,$dir/$name.txt;##默认结果是一个sheet转换成一个文本文档名字为sheet名字 可自行调整 $sheet-{MaxRow}||$sheet-{MinRow}; foreach my $row ($sheet-{MinRow}..$sheet-{MaxRow}){ $sheet-{MaxCol}||$sheet-{MinCol}; foreach my $col($sheet-{MinCol}..$sheet-{MaxCol}){ my $cell$sheet-{Cells}[$row][$col]; if($cell){ print OUT$cell-{Val}\t; } } print OUT\n; }} 写完之后发现每次只能转换一个文件于是就把它做成了一个包名字为excel2txt.pm随便用~ 主程序perl.pl use strict;use warnings;use package::excel2txt;my $dir/home/escel2txt;my sample(test);foreach my $sample(sample){ my $file$dir/$sample.xlsx; my $reportdir/home/escel2txt; package::excel2txt::change($file,$reportdir);##在report下批量生成转换过后的文档} 包excel2txt.pm package package::excel2txt; use strict;use warnings;use strict; use Spreadsheet::XLSX; sub change{my $fileshift _;my $dirshift _;my $excelSpreadsheet::XLSX-new($file); foreach my $sheet({$excel-{Worksheet}}){ my $name$sheet-{Name};###sheet名字 open OUT,$dir/$name.txt;##默认结果是一个sheet转换成一个文本文档名字为sheet名字 可自行调整 $sheet-{MaxRow}||$sheet-{MinRow}; foreach my $row ($sheet-{MinRow}..$sheet-{MaxRow}){ $sheet-{MaxCol}||$sheet-{MinCol}; foreach my $col($sheet-{MinCol}..$sheet-{MaxCol}){ my $cell$sheet-{Cells}[$row][$col]; if($cell){ print OUT$cell-{Val}\t; } } print OUT\n; } } } 1转载于:https://www.cnblogs.com/gui-/p/6889608.html