2014-01-27 57 views
0

我试图设置年龄计算公式在PHPExcel给予致命错误

公式

=DATEDIF(J2,DATE(2014,3,31),"Y")&" Years, "&DATEDIF(J2,DATE(2014,3,31),"YM")&" Months, "&DATEDIF(J2,DATE(2014,3,31),"MD")&" Days"

其中在J列取决于DOB 1500列L列

,我的代码是这样的

for($i=2;$i<=1500;$i++){ 
$objPHPExcel->getActiveSheet()->setCellValue('L'.$i.',=DATEDIF(J'.$i.',DATE(31-03-2014),"Y") & DATEDIF(J'.$i.',DATE(31-03-2014),"YM") &DATEDIF(J'.$i.',DATE(31-03-2014),"MD")'); 
} 

但我得到这个错误 -

Fatal error: Uncaught exception 'PHPExcel_Exception' with message 'Cell coordinate can not be a range of cells.' in C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\Classes\PHPExcel\Worksheet.php:1127 Stack trace: #0 C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\Classes\PHPExcel\Worksheet.php(1042): PHPExcel_Worksheet->getCell('L2,=DATEDIF(J2,...') #1 C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\excel_export.php(83): PHPExcel_Worksheet->setCellValue('L2,=DATEDIF(J2,...') #2 {main} thrown in C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\Classes\PHPExcel\Worksheet.php on line 1127

我在做什么错误,请指导我。

我在setCellValue( 'L' 改变错误的公式。$ I '= ...现在是setCellValue(' L '$我,'= ...

for($i=2;$i<=1500;$i++){ $objPHPExcel->getActiveSheet()->setCellValue('L'.$i,'=DATEDIF(J'.$i.',DATE(31-03-2014),"Y") &DATEDIF(J'.$i.',DATE(31-03-2014),"YM") &DATEDIF(J'.$i.',DATE(31-03-2014),"MD")'); 
} 

和文件下载得到的文件,但文件格式的文件扩展名错误,无法打开。
我打开记事本中的Excel文件,看到的错误,我发现这个消息

<br/> 
<b>Fatal error</b>: Uncaught exception 'PHPExcel_Calculation_Exception' with message 'Registration Format!L2 -&gt; Formula Error: Wrong number of arguments for DATE() function: 1 given, 3 expected' in C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\Classes\PHPExcel\Cell.php:298 
Stack trace: 
#0 C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\Classes\PHPExcel\Writer\Excel2007\Worksheet.php(1078): PHPExcel_Cell-&gt;getCalculatedValue() 
#1 C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\Classes\PHPExcel\Writer\Excel2007\Worksheet.php(1025): PHPExcel_Writer_Excel2007_Worksheet-&gt;_writeCell(Object(PHPExcel_Shared_XMLWriter), Object(PHPExcel_Worksheet), 'L2', Array, Array) 
#2 C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\Classes\PHPExcel\Writer\Excel2007\Worksheet.php(83): PHPExcel_Writer_Excel2007_Worksheet-&gt;_writeSheetData(Object(PHPExcel_Shared_XMLWriter), Object(PHPExcel_Worksheet), Array) 
#3 C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\Classes\PHPExcel\Writer\Exce in <b>C:\xampp\htdocs\manazeschool\software\office_admin\exam_excel\Classes\PHPExcel\Cell.php</b> on line <b>298</b><br /> 

回答

0

经过漫长等待答复,我开始探索解决方案,并最终这是解决我的问题代码

$date = date('2014,03,31'); 
for($i=2;$i<=1500;$i++){ 
$objPHPExcel->getActiveSheet()->setCellValue('L'.$i,'=DATEDIF(J'.$i.',DATE('.$date.'),"Y") &DATEDIF(J'.$i.',DATE('.$date.'),"YM") &DATEDIF(J'.$i.',DATE('.$date.'),"MD")'); 
} 

计算器的每个用户都没有专家,我们来这里是为了指导专家。我等了12小时的任何建议或帮助,但没有人出现。这是可悲的。