PHPExcel中的dd / mm / yyyy格式在单元格中添加单引号(')

时间:2016-06-22 09:54:34

标签: codeigniter phpexcel date-formatting

在我的网页中,我使用PHPexcel 1.8生成Excel文件。现在我面临的问题如下所述。

我有一些dd/mm/yyyy格式的日期值。价值即将到来。但它在开头就显示single quote(')

我尝试了很多解决方案。但没有人帮助我。

我的示例代码部分在下面给出

$cnt = 1;
foreach($gluuidArr as $uuid){
    $this -> excel_180->getActiveSheet() ->setCellValue('A'.$cnt,$aVal);
    $this -> excel_180->getActiveSheet() ->setCellValue('B'.$cnt,$bVal);
    $this -> excel_180 -> getActiveSheet() -> setCellValue('C'.$cnt, $cVal);
    $this -> excel_180->getActiveSheet() ->setCellValueExplicit('D'.$cnt,$dVal, PHPExcel_Cell_DataType::TYPE_STRING);
    $this -> excel_180 -> getActiveSheet() -> setCellValue('E'.$cnt, $eVal);

    $cnt += 1;
}

$aVal, $bVal,..在循环内声明,$eval包含dd/mm/yyyy格式的日期

假设日期为20/05/2016,点击excel单元格时,它会显示为'20/05/2016

我试过了

$this -> excel_180->getActiveSheet()->getStyle('E'.$cnt)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY);

但没有运气。

请帮我摆脱这个问题。任何帮助都可以得到赞赏。

1 个答案:

答案 0 :(得分:2)

那是因为你没有存储日期,你正在存储恰好代表人类日期的字符串。 MS Excel不会将日期存储为字符串,而是作为浮点数,表示自1900年1月1日(或Mac版本的1904年1月1日)以来的天数

如果要在PHPExcel中存储日期/时间值,则需要将该日期/时间转换为MS Excel timestsamp值,然后为单元格设置格式掩码,指示您希望如何显示它。

PHPExcel Documentation中对此进行了解释,并在Examples

中进行了演示