我正在使用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
答案 0 :(得分:1)
查看DIAGNOSTICS模块文档的Spreadsheet::WriteExcel部分,它指出:
无法解析公式...
有大量警告与形成错误的公式和功能有关。有关如何避免这些错误的建议,请参阅"FORMULAS AND FUNCTIONS IN EXCEL"部分。您还应该检查Excel中的公式以确保它有效。
答案 1 :(得分:1)
如果您只想在该单元格中使用等号,并且您可以使用一个小的前导空格,那么这将会激活一个' ='进入该行没有公式错误:
my @data = ('1','1', ' = ', "testdata");
也适用于LibreOffice Calc。
我很好奇你打算如何在SS中使用那个=运算符?您可以通过取消引用其中包含运算符的单元格来构建动态Excel公式吗?我不是Excel专家: - )