2016-02-27 66 views
4

我想使用PHPExcel将日期插入单元格。这是我的代码:为什么PHPexcel在日期字段中插入单引号?

include('xlsx/Classes/PHPExcel.php'); 
    include('xlsx/Classes/PHPExcel/Calculation.php'); 
    include('xlsx/Classes/PHPExcel/Cell.php'); 
    $objPHPExcel = new PHPExcel(); 
    $start = 3; 
    $objPHPExcel->getActiveSheet()->getStyle('A1')->getNumberFormat()->setFormatCode('DD.MM.YYYY'); 
    $objPHPExcel->getActiveSheet()->SetCellValue('A1', date('d.m.Y', time()+60*($start + 3))); 
    $objPHPExcel->getActiveSheet()->getStyle('A1')->getNumberFormat()->setFormatCode('DD.MM.YYYY'); 
    $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 
    $objWriter->save('text.xls'); 

然而,PHPexcel选择正确的格式,但它插入日期单引号

'27.02.2016 

代替

27.02.2016 

我不知道如何插入日期没有这句话,希望你能帮助我。

+1

尝试从'/ Examples' –

回答

4

setFormatCode方法设置Excel将用于输出日期的格式,而不是为PHPExcel设置格式来解释日期。 Excel电子表格以特定的时间戳格式存储日期,该格式可以使用PHPExcel_Shared_Date类生成。它有各种日期格式和Excel预期格式之间转换的方法。

$objPHPExcel->getActiveSheet()->SetCellValue('A1', 
    PHPExcel_Shared_Date::PHPToExcel(time()+60*($start + 3))); 

...应该做的伎俩。

+0

阅读'02types.php'太谢谢你了。这工作很好:) –

0

还有一决定:

$objPHPExcel->getActiveSheet()->SetCellValue('A1', '=NOW()+0.00001*60*'.$start); 
+1

这可能不会给你你所期望的:每次在MS Excel中打开电子表格时,都会重新计算MS Excel NOW()函数,因此明天打开该文件,并且单元格A1中显示的值将不同于如果您今天打开它显示的值....您接受的答案在您创建电子表格文件时修复了日期/时间,因为您将该Excel时间戳存储在单元格A1中,而不是一个易变的公式 –

相关问题