PHPExcel не рассчитывает формулы

Так что я вроде новичок в phpExcel, и я делаю лист с данными из формы (не сделано, но придет), но у меня есть проблема, мои формулы не будут рассчитывать, я протестировал предустановленные формулы и импортировать формулы из кода, но ни одна не будет работать все, что я получаю 0 и защищенный режим, и если я щелкну на редактируемом листе и нажму на ячейку, где находится формула, и нажму, введите ее работает и рассчитать

<?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');
?>

Так что все, что нужно сделать, это импортировать часы рабочего времени Start / End / Break, а затем формула рассчитывает, сколько часов / минут вы работаете

также, если есть лучший способ или что-то, что я должен сделать, я могу попробовать это 🙂

1

Решение

Лучший ответ — использовать значения даты / времени в MS Excel, а не надеяться, что PHPExcel / MS Excel догадается, что ваши строковые значения похожи на ('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');
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]