Perl excel Spreadsheet :: ParseXLSX使用公式获取单元格值

时间:2015-11-19 09:05:18

标签: excel perl cell formula xlsx

要解析的Excel工作表有2个工作表:

  1. 第一个工作表:单元格A1具有以下公式= TD!N2并显示正确的值
  2. 第二个名为“TD”的工作表:单元格N2具有以下公式= SUM(F47:F49)并且是逗号后带有3位数的数值

    例:
    第二个工作表“TD”:
    F47 = 1,200
    F48 = 1,300
    F49 = 1,401
    N2 = SUM(F47:F49)= 3,901
    第一个工作表:
    A1 = TD!N2表示3,901

  3. 一切看起来不错,但是当我尝试用Spreadsheet :: ParseXLSX解析这个Excel文件时

    my $parser             = Spreadsheet::ParseXLSX->new();
    my $oBook              = $parser->parse("$excelfile");
    my $worksheet          = $oBook->worksheet("first");
    my $cell = $worksheet->{Cells}[1][0]; # A1
    print Dumper($cell);
    

    转储的结果如下所示:

    $VAR1 = bless( {
                 'Merged' => '',
                 'Type' => 'Numeric',
                 'Val' => 0,
                 '_Value' => '0.000',
                 'FormatNo' => 3,
                 'Formula' => 'TD!A2',
                 'Format' => bless( {
    ...
    

    Val为0.
    如何获得3,901的公式结果? Excel文件的单元格格式是错误的吗?

0 个答案:

没有答案