使用Spreadsheet :: WriteExcel使用write_row写入时出错

时间:2015-04-07 05:59:53

标签: perl excel-formula spreadsheet cpan

我正在使用Spreadsheet::WriteExcel将数据写入excel。
对于我使用的每一行 write_row()。
当我尝试写入包含数据的行(=)时,它会抛出一个错误: 无法解析公式:= ,因为excel将其视为公式。
我需要使用数组作为一行写数据,所以有没有办法做同样的事情?

以下是代码片段:

use Spreadsheet::WriteExcel;
my $workbook  = Spreadsheet::WriteExcel->new("../tmp/op.xls");
my $worksheet = $workbook->add_worksheet();
my @data = ('1','1','=',"testdata");
$worksheet->write_row("A1", \@data);         
$workbook->close();

输出:

Couldn't parse formula: = at 

2 个答案:

答案 0 :(得分:1)

查看DIAGNOSTICS模块文档的Spreadsheet::WriteExcel部分,它指出:

无法解析公式...

  

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

答案 1 :(得分:1)

如果您只想在该单元格中使用等号,并且您可以使用一个小的前导空格,那么这将会激活一个' ='进入该行没有公式错误:

my @data = ('1','1', ' = ', "testdata");

也适用于LibreOffice Calc。

我很好奇你打算如何在SS中使用那个=运算符?您可以通过取消引用其中包含运算符的单元格来构建动态Excel公式吗?我不是Excel专家: - )