Perl 如何将.xls文件转换为.csv文件?

Perl 如何将.xls文件转换为.csv文件?,perl,csv,xls,Perl,Csv,Xls,如何在perl中将.xls转换为.csv?这个模块是什么?这方面有什么例子吗? 转化的最佳方式是什么 use Spreadsheet::ParseExcel; my $xlsparser = Spreadsheet::ParseExcel->new(); my $xlsbook = $xlsparser->parse('/home/Admin/Downloads/abc.xls'); my $xls = $xlsbook->worksheet(0); my ( $row_fir

如何在perl中将
.xls
转换为
.csv
?这个模块是什么?这方面有什么例子吗? 转化的最佳方式是什么

use Spreadsheet::ParseExcel;
my $xlsparser = Spreadsheet::ParseExcel->new();
my $xlsbook = $xlsparser->parse('/home/Admin/Downloads/abc.xls');
my $xls = $xlsbook->worksheet(0);
my ( $row_first, $row_last ) = $xls->row_range();
my ( $col_first, $col_last ) = $xls->col_range();
my $csv = '/home/Admin/Downloads/ram.csv';
for my $row ( $row_first .. $row_last ) {        # Step through each row
    for my $col ( $col_first .. $col_last ) {    # Step through each column
        my $cell = $xls->get_cell( $row, $col ); # Get the current cell
        next unless $cell;
        $csv .= $cell->unformatted(); # Get the cell's raw data -- no border 
                                      # colors or anything like that
        if ($col == $col_last) {
            $csv .= "\n"; 
        } else {
            $csv .= ","; 
        }
    }
}
open(my$FH ,'>',"$csv") or die "oops!";

while (my$line = <$xlsbook>){
    print $FH $line;
}
使用电子表格::ParseExcel;
my$xlsparser=电子表格::解析Excel->new();
我的$xlsbook=$xlsparser->parse('/home/Admin/Downloads/abc.xls');
我的$xls=$xlsbook->工作表(0);
my($row_first,$row_last)=$xls->row_range();
my($col_first,$col_last)=$xls->col_range();
my$csv='/home/Admin/Downloads/ram.csv';
对于我的$row($row_first..$row_last){#遍历每一行
对于我的$col($col_first..$col_last){#遍历每一列
my$cell=$xls->get_cell($row,$col);#获取当前单元格
下一步,除非$cell;
$csv.=$cell->unformatted()#获取单元格的原始数据--无边框
#颜色之类的
如果($col==$col\u last){
$csv.=“\n”;
}否则{
$csv.=“,”;
}
}
}
打开(我的$FH,“>”,“$csv”)或死“哎呀!”;
while(我的$line=){
打印$FH$行;
}

哎呀!在csv.pl第23行。

使用perl脚本。使用CPAN中的Spreadsheet::ParseExcel perl模块解析xls文件,然后将其输出为csv应该可以正常工作


您的代码中有输入错误

open(my $FH ,'>',"$csv") or die "oops!";

while (my $line = <$FH>){
    print $FH $line;
}
打开(我的$FH,“>”,“$csv”)或死“oops!”;
while(我的$line=){
打印$FH$行;
}

csv.pl第26行有一些好的参考资料,请参阅我的更新问题可能与我没有收到的GLOB参考资料重复。此错误修复了变量名,请重试。我认为它是错误的
open(我的$FH,“>”,“$csv”)或die“oops!”;而(my$line=){