1

我在 perl 中有以下代码打开一个 excel 文件并读取行:列,我想要得到的是单元格的内容而不是公式,get_cell (0,1) 和 (1,1) 和 (2, 1)有一些公式和值,我对公式不感兴趣,只是公式返回的单元格的内容或值说如果 row:1:0 是 200 那么我需要阅读 200 而不是后面的公式细胞!有几个好人能在这方面回复我吗..提前谢谢..

            some code above
            use Spreadsheet::ParseExcel
    $workbook = $parser->parse("$dir/$file");
    $worksheet = $workbook->worksheet('Sheet1');

    $total = $worksheet->get_cell(0,1);
    $pass  = $worksheet->get_cell(1,1);
    $fail  = $worksheet->get_cell(2,1);

    # Print the cell value when not blank
    $total = $total->value();
    $pass = $pass->value();
            $fail = $fail->value();
4

2 回答 2

1

value()方法根据需要返回公式的结果,而不是公式本身。我刚刚=1+1在单元格中使用一个简单的公式自己测试了它,然后value()返回2

Spreadsheet::WriteExcel如果您正在读取的Excel文件以前由案子)。原因是 Spreadsheet::WriteExcel 写入公式而不是公式结果,因为它无法在不访问 Excel 公式引擎的情况下计算任意 Excel 公式。

于 2013-11-05T02:27:08.717 回答
0

我发现它使用

      use Spreadsheet::XLSX;
      my $excel = Spreadsheet::XLSX->new("$filename");
      my ($sheet) = @{ $excel->{Worksheet} };
      print $sheet->{Cells}[0][1]{Val}, "\n";
于 2013-11-05T05:08:40.307 回答