用Perl,Office 2016升级安全问题处理Excel文件

我已经在服务器上安装了Spreadsheet :: ParseExcel ,并从文档中testing了示例代码。

这是我正在使用的代码:

#!/usr/bin/perl -w use strict; use Spreadsheet::ParseExcel; my $parser = Spreadsheet::ParseExcel->new(); my $file = "/data/excel/matrix.xls"; my $workbook = $parser->parse($file); if ( !defined $workbook ) { print "can't find workbook!!!"; die $parser->error(), ".\n"; } for my $worksheet ( $workbook->worksheets() ) { my ( $row_min, $row_max ) = $worksheet->row_range(); my ( $col_min, $col_max ) = $worksheet->col_range(); for my $row ( $row_min .. $row_max ) { for my $col ( $col_min .. $col_max ) { my $cell = $worksheet->get_cell( $row, $col ); next unless $cell; print "Row, Col = ($row, $col)\n"; print "Value = ", $cell->value(), "\n"; print "Unformatted = ", $cell->unformatted(), "\n"; print "\n"; } } } 

我们已经升级到Office 2016.这些文件是旧的Excel格式(.xls)。 这些文件是从一个仪器复制,需要转换为文本进一步处理。

问题是,Perl不会将文件识别为Excel,除非我打开它,启用内容,validation它是可信的并重新保存它。

有没有办法绕过所有这些安全警告,所以我不必打开并手动重新保存每个文件? 提前感谢您的build议。

请参阅警告:

在这里输入图像说明 在这里输入图像说明

在这里输入图像说明