Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl Excel无法打开用电子表格::WriteExcel创建的.xlsx文件_Perl - Fatal编程技术网

Perl Excel无法打开用电子表格::WriteExcel创建的.xlsx文件

Perl Excel无法打开用电子表格::WriteExcel创建的.xlsx文件,perl,Perl,我一直在使用以下脚本将.csv文件转换为.xlsx格式,但Excel显示: 无法打开文件,因为文件格式或文件扩展名无效,请确认文件未损坏,并且扩展名与格式文件匹配。 这是我的密码: #!/usr/bin/perl use strict; use Spreadsheet::WriteExcel; use Text::CSV_XS; open( CSVFILE,">", "C:\\Book1.csv") or die "$!"; my $workbook = Spreadsheet::Wr

我一直在使用以下脚本将.csv文件转换为.xlsx格式,但Excel显示:

无法打开文件,因为文件格式或文件扩展名无效,请确认文件未损坏,并且扩展名与格式文件匹配。

这是我的密码:

#!/usr/bin/perl

use strict;
use Spreadsheet::WriteExcel;
use Text::CSV_XS;
open( CSVFILE,">", "C:\\Book1.csv") or die "$!";
my $workbook  = Spreadsheet::WriteExcel->new("C:\\Book1.xlsx");
my $worksheet = $workbook->add_worksheet();

my $csv = Text::CSV_XS->new;

my $row = 0;
while (<CSVFILE>) {
    if ( $csv->parse($_) ) {
        my @Fld = $csv->fields;

        my $col = 0;
        foreach my $token (@Fld) {
            $worksheet->write( $row, $col, $token );
            $col++;
        }
        $row++;
    } else {
        my $err = $csv->error_input;
        print "Text::CSV_XS parse() failed on argument: ", $err, "\n";
    }
}
#/usr/bin/perl
严格使用;
使用电子表格::WriteExcel;
使用Text::csvxs;
打开(CSVFILE,“>”,“C:\\Book1.csv”)或死“$!”;
my$工作簿=电子表格::WriteExcel->new(“C:\\Book1.xlsx”);
我的$工作表=$工作簿->添加工作表();
my$csv=Text::csv_XS->new;
我的$row=0;
而(){
如果($csv->parse($u2;)){
my@Fld=$csv->字段;
我的$col=0;
foreach my$代币(@Fld){
$worksheet->write($row,$col,$token);
$col++;
}
$row++;
}否则{
my$err=$csv->error\u输入;
打印“Text::CSV_XS parse()在参数“,$err,”\n”上失败;
}
}
用作替代品


这实际上是
电子表格::WriteExcel
文档的建议,该文档表明它已被取代:

模块电子表格::WriteExcel仅支持较旧的.xls格式;考虑升级到Excel:: 请参阅CPAN上明确说明这一点的注释