PHPExcel不计算公式

所以即时通讯有点新来的phpExcel和即时通讯从表单数据表(不做但将来),但我有一个问题,我的公式不会计算我已经testing了预设的公式和从代码导入公式,但没有不会工作,所有我得到是0和保护模式,如果我点击editsheet,然后单击公式所在的单元格,然后按input它的工作原理和计算它

<?php /** Error reporting */ error_reporting(E_ALL); /** PHPExcel */ include 'Classes/PHPExcel.php'; /** PHPExcel_Writer_Excel2007 */ include 'Classes/PHPExcel/Writer/Excel2007.php'; include 'Classes/PHPExcel/IOFactory.php'; // Load file if it doesn't exists if (file_exists('Exceltime.xlsx')) { $objPHPExcel = PHPExcel_IOFactory::load('Exceltime.xlsx'); } else { $objPHPExcel = new PHPExcel(); } $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('C4', '10:00') ->setCellValue('D4', '18:00') ->setCellValue('E4', '01:30') ->setCellValue('F4', '=(D4-C4-E4)'); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('C5', '10:00') ->setCellValue('D5', '18:00') ->setCellValue('E5', '01:30') ->setCellValue('F5', '=(D5-C5-E5)'); $objPHPExcel->getActiveSheet()->setTitle('TidsRapport Namn'); header('Content-Type: application/vnd.openxmlformats- officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="Tidsrapport Namn.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->setPreCalculateFormulas(TRUE); $objWriter->save('php://output'); ?> 

所以它应该做的是导入工作时钟小时开始/结束/rest,然后公式计算你工作多less小时/分钟

如果还有更好的方法或者我应该做的免费试试:)

一个更好的答案是实际使用MS Excel的date/时间值,而不是希望PHPExcel / MS Excel会猜测你的string值( '10:00' )应该是次。

根据PHPExcel文档

 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('C4', PHPExcel_Calculation_DateTime::TIMEVALUE('10:00')) ->setCellValue('D4', PHPExcel_Calculation_DateTime::TIMEVALUE('18:00')) ->setCellValue('E4', PHPExcel_Calculation_DateTime::TIMEVALUE('01:30')) ->setCellValue('F4', '=(D4-C4-E4)'); $objPHPExcel->getActiveSheet()->getStyle('C4:E4') ->getNumberFormat() ->setFormatCode('hh:mm'); $objPHPExcel->getActiveSheet()->getStyle('F4') ->getNumberFormat() ->setFormatCode('[hh]:mm');