在PhpSpreadsheet中运行宏

问题描述

我正在做一个允许客户将MysqL数据导出为.xls格式的项目。我正在使用PHPspreadsheet库。 这样就可以了,但是在我的数据中包含很多日期,其中一些日期为0000-00-00意味着不使用它。

我想将所有这些'0000-00-00'过滤为'-'。 我使用excel查找并替换并将它们另存为宏(.bas)

我尝试过的是

  1. 将IOFactory和.read文件加载到PHP中的.bas文件中,但文件格式不被接受

  2. 在用于获取sql数据值的PHP循环中使用替代方法 $activeSheet->setCellValue('L'.$i,'=substitute('L'.$i,"0000-00-00","-')');

    $ i为1,每个循环将增加1 当i无法在$i中包含substitute()时,此方法失败,因为 ”问题,我尝试更改它们,但似乎0000-00-00-必须使用"",如果 不是该方法无法被导致无法检测$i的库识别...

    有什么办法可以解决这些问题?还是不能首先解决? 因为我找不到来自社区或Google的PHPspreadsheet中的宏解释。

解决方法

设置单元格的值时

 if ($datefromselect == '0000-00-00') {
    $activeSheet->setCellValueByColumnAndRow($colnum,$rownum,'-');
 } else {
    $activeSheet->setCellValueByColumnAndRow($colnum,$datefromselect);
 }

或在选择中完成

SELECT lastname,if(date_closed = '0000-00-00','-',date_closed) 
FROM `lca_clients`