2016-02-27 39 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中,而不是一個易變的公式 –

相關問題