如何在Excel工作表中编写存储在perl变量中的公式

时间:2011-01-06 04:47:35

标签: perl excel

use strict
use Spreadsheet::WriteExcel;
my $Workbook  = Spreadsheet::WriteExcel->new('cw.xls');
my $Worksheet = $Workbook->add_worksheet('MRD');

my $Formula= "A10+B10/2";
$Worksheet->write_formula(1,2,'='.($Formula));

exit;

获取错误:

Couldn't parse formula: =A10+B10/2;

注意:在我正在使用的公式中包含工作表数据调用。 当我在excel表中手动粘贴它的工作正常但通过程序我无法将其放在工作表中。

如果有任何人遇到此问题或有解决方案,请告诉我。

2 个答案:

答案 0 :(得分:1)

如果您看到Spreadsheet::WriteExcel模块的文档,则会在DIAGNOSTICS部分中说明:

无法解析公式...

有大量警告与形成错误的公式和功能有关。有关如何避免这些错误的建议,请参阅“FORMULAS AND FUNCTIONS IN EXCEL”部分。您还应该检查Excel中的公式以确保它有效。

答案 1 :(得分:1)

将公式存储在变量中并将其传递给write_formula()没有问题。事实上,上面你自己的代码片段证明它有效。

所以问题在于您正在尝试编写的公式。由于您尚未发布公式,因此很难猜出问题可能是here are some formula debugging tips from the docs

  1. 验证公式是否适用于Excel(或Gnumeric或OpenOffice.org)。
  2. 确保它不在上面显示的警告列表中。 (在文档中)。
  3. 确保单元格引用和公式名称为大写。
  4. 确保使用':'作为范围运算符,A1:A4。
  5. 确保使用','作为联合运算符SUM(1,2,3)。
  6. 确保该功能在上表中。 (在文档中)。
  7. P.S。当您使用write_formula()时,不需要前导'=',因此您可以使用:

    $Worksheet->write_formula(1, 2, $Formula);