【问题标题】:perl Excel::Writer::XLSX write_formula encodingperl Excel::Writer::XLSX write_formula 编码
【发布时间】:2022-11-13 23:09:56
【问题描述】:

我正在尝试使用 Excel::Writer::XLSX。大多数事情已经成功,但我很难将公式放入单元格。

use utf8;

已设置

我正在尝试使用以下语句将公式设置到单元格中:

$av_obj_excel_worksheet_DATA->write_formula( 'a3', '=_xlfn._xlws.FILTER(gw_col_gwuPMBo,(MONTH(gw_col_DATUM)=1)*(gw_col_gwuPMBo<>0),"_empty")' );

我已经提取了 .xlsx 文件(因为它是一个简单的 zip 文件)并查看了电子表格的相关 xml。

结果是:

_xlfn._xlws.FILTER(gw_col_gwuPMBo,(MONTH(gw_col_DATUM)=1)*(gw_col_gwuPMBo&amp;lt;&amp;gt;0),"_empty")

但结果应该是,因为我手动创建了一个 .xlsx 文件并再次查看了相关电子表格的相关 xml 文件:

_xlfn._xlws.FILTER(gw_col_gwuPMBo,(MONTH(gw_col_DATUM)=2)*(gw_col_gwuPMBo&lt;&gt;0),"_empty")

在我看来,我有一些 unicode 问题。

Unicode 很难理解,而且——我很遗憾——我真的不理解!

有人可以帮我怎么做才能将公式的正确形式放入 .xlsx 文件(或相关电子表格的相关 .xml 文件?

谢谢

【问题讨论】:

    标签: excel perl


    【解决方案1】:

    我已经尝试过编码和解码,现在找到了解决方案:

    $av_tmp_STRING = '=_xlfn._xlws.FILTER(gw_col_gwuPMBo,(MONTH(gw_col_DATUM)=1)*(gw_col_gwuPMBo<>0),"_empty")';
    $av_tmp_STRING = decode( 'UTF-8', $av_tmp_STRING );
    $av_obj_excel_worksheet_DATA->write_formula( 'a3', $av_tmp_STRING );
    

    障碍是我在调试脚本期间没有看到结果。但是正确的字符串被写入 .xlsx 文件。

    有时,通过思考、搜索和尝试,它会产生积极的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2011-09-16
      • 2020-12-06
      • 1970-01-01
      相关资源
      最近更新 更多