【问题标题】:Out of memory error while parsing a specific excel file from a Perl Program从 Perl 程序解析特定 excel 文件时出现内存不足错误
【发布时间】:2009-02-18 12:52:25
【问题描述】:

当 perl 代码运行时,程序会产生一些警告并终止。输出如下:

D:\Perl\bin\search tool>perl testa.pl 
UTF-16 surrogate 0xdb79 at D:/Perl/site/lib/Spreadsheet/ParseExcel/FmtDefault.pm line 81. 
UTF-16 surrogate 0xdbb1 at D:/Perl/site/lib/Spreadsheet/ParseExcel/FmtDefault.pm line 81. 
UTF-16 surrogate 0xd83e at D:/Perl/site/lib/Spreadsheet/ParseExcel/FmtDefault.pm line 81. 
UTF-16 surrogate 0xdff8 at D:/Perl/site/lib/Spreadsheet/ParseExcel/FmtDefault.pm line 81. 
UTF-16 surrogate 0xdbff at D:/Perl/site/lib/Spreadsheet/ParseExcel/FmtDefault.pm line 81. 
UTF-16 surrogate 0xdd98 at D:/Perl/site/lib/Spreadsheet/ParseExcel/FmtDefault.pm line 81. 
substr outside of string at D:/Perl/site/lib/Spreadsheet/ParseExcel.pm line 1196. 
Use of uninitialized value in unpack at D:/Perl/site/lib/Spreadsheet/ParseExcel.pm line 1196. 
substr outside of string at D:/Perl/site/lib/Spreadsheet/ParseExcel.pm line 1196.
Use of uninitialized value in unpack at D:/Perl/site/lib/Spreadsheet/ParseExcel.pm line 1196. 
Out of memory! 

系统信息如下:

Perl 版本:5.010000 操作系统名称:MSWin32 模块版本:(并非全部都是必需的) 电子表格::ParseExcel 0.49 标量::Util 1.19 Unicode::Map(未安装) 电子表格::WriteExcel(未安装) Parse::RecDescent(未安装) 文件::温度 0.18 OLE::Storage_Lite 0.18 IO::Stringy 2.110

perl 代码如下:

use strict; 
    use Spreadsheet::ParseExcel; 
    my $parser = Spreadsheet::ParseExcel->new( 
        CellHandler => \&cell_handler, 
        NotSetCell  => 1 
    ); 
    my $workbook = $parser->Parse('testfile.xls'); 
    sub cell_handler { 
        my $workbook    = $_[0]; 
        my $sheet_index = $_[1]; 
        my $row         = $_[2]; 
        my $col         = $_[3]; 
        my $cell        = $_[4]; 
        print $cell->unformatted(), "\n"; 
    }

我也有示例 testfile.xls。

【问题讨论】:

    标签: perl excel-2003


    【解决方案1】:

    此问题已在电子表格::ParseExcel Google Group here 上得到解答。

    问题在于特定文件已加密。

    约翰。

    【讨论】:

    • 如何以编程方式检测这些类型的文件?
    • 你应该在一个单独的问题中问这个问题。
    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多