如何在存储在perlvariables中的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表格中手工粘贴时,它的工作正常,但是通过程序,我无法把它放在表格中。

请任何人遇到这个问题或有解决办法让我知道。

如果您看到Spreadsheet :: WriteExcel模块的文档,则在“ 诊断”一节中指出:

无法parsing公式…

有大量的警告涉及严重的公式和function。 有关如何避免这些错误的build议,请参阅“ EXCEL中的公式和函数 ”一节。 您还应该在Excel中检查公式以确保它是有效的。

将公式存储在variables中并将其传递给write_formula()是没有问题的。 实际上你自己的代码片断certificate了它的工作原理。

所以问题出在你正在写的公式上。 由于您没有公布这个公式,所以很难猜测问题出在哪里,但是这里有一些来自文档的公式debugging技巧 :

  1. validation公式是否在Excel(或Gnumeric或OpenOffice.org)中工作。
  2. 确保它不在上面的注意事项列表中。 (在文档中)。
  3. 确保单元格引用和公式名称是大写的。
  4. 确保您使用“:”作为范围运算符A1:A4。
  5. 确保您使用','作为并集操作符SUM(1,2,3)。
  6. 确保该function在上表中。 (在文档中)。

PS当您使用write_formula()时,不需要前导'=',所以您可以使用:

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