2014-12-09 147 views
0

我想读一个工作簿,但我收到以下错误:PHPExcel公式错误

致命错误:!未捕获的异常 'PHPExcel_Calculation_Exception' 有消息“表(ABC)F6 - > ID F3 - >进行式错误:意外的')'' in C:\ webserver \ Apache \ htdocs \ ExcelSheetReader \ PHPExcel_1.7.9_new buss req \ Classes \ PHPExcel \ Cell.php:298堆栈跟踪:#0 C:\ webserver \ Apache \ htdocs \ ExcelSheetReader \ PHPExcel_1.7.9_new buss req \ Classes \ PHPExcel \ Worksheet.php(2432):PHPExcel_Cell-> getCalculatedValue()#1 C:\ webserver \ Apache \ htdocs \ ExcelSheetReader \ PHPExcel_1.7.9_new buss req \ Classes \ PHPExcel \ Worksheet.php(2508):PHPExcel_Worksheet-> rangeToArray ('A1:N260',NULL,true,true,true)#2 C:\ webserver \ Apache \ htdocs \ ExcelSheetReader \ PHPExcel_1.7.9_new buss req \ Workbook \ read_credits_v3_revised.php(36):PHPExcel_Worksheet-> toArray (NULL,true,true,true)#3 {main}抛出C:\ webserver \ Apache \ htdocs \ ExcelSheetReader \ PHPExcel_1.7.9_new buss req \ Classes \ PHPExcel \ Cell.php on line 298

公式在片(ABC)细胞F6是= ID!F3, 和在片材ID小区F3,公式是= SUM(IDc1.2Y,IDc1.3Y,IDc1.4Y,IDc1.5Y,IDc1.6Y ,IDc2.3Y,IDc3.1Y,IDc3.2Y,IDc3.3Y,IDc3.4Y) 请指导我在表中找到问题为我不认为这个公式有任何问题。

我也得到这样的: 未捕获的异常 'PHPExcel_Calculation_Exception' 与消息'LL F3 - >式错误:!意外 ')'' 式在片LL小区F3是= MAX(LLc1Y,MIN(10 ,SUM(LLc2Y,MAX(LLc3.1Y,LLc3.2Y),LLc3.3Y,LLc4Y,LLc5.1Y,LLc5.2Y,LLc5.3Y,LLc6Y)))这对我也很好,但仍然出错。

如果可能,请帮我解决这个错误。 也有什么办法可以通过忽略任何公式问题来从工作表中读取数据?

+0

是'IDc1.2Y','LLc2Y' ,'LLc3.1Y'等命名范围?或者是什么?因为如果我只是尝试将该公式粘贴到MS Excel – 2014-12-09 12:56:36

+0

IDc1.2Y,IDc1.3Y,IDc1.4Y--这些单元格存在于工作表中,并且它们包含下拉值,则会出现“#NAME!”错误。 IDc1.2Y在ID表中,LLc2Y在LL表中等等。 – 2014-12-09 13:08:55

+0

'IDc1.2Y'不是有效的单元格引用(基于我读过的任何MS Excel文档)我至少期望在工作表名称和单元ID之间有一个分隔符,如'ID!c1'。 ...如果下拉列表是一个表单元素,那么PHPExcel无法处理它,因为它不适用于表单元素 – 2014-12-09 13:26:27

回答

1

您打算使用以下参数调用toArray()方法。

PHPExcel_Worksheet->toArray(NULL, true, true, true) 

看为可以传递给toArray()方法的实际参数的文档,您使用:

* @param mixed $nullValue Value returned in the array entry if a cell doesn't exist 
* @param boolean $calculateFormulas Should formulas be calculated? 
* @param boolean $formatData Should formatting be applied to cell values? 
* @param boolean $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero 
*        True - Return rows and columns indexed by their actual row and column IDs 

特别,看第二个参数(你传递一个true)。如果你不想计算公式,然后通过一个false,但请记住,你为这些单元格返回的结果将是实际的公式本身,而不是计算的值

+0

是的,但由于其中的错误,我无法读取表格。另外我试图使用$ ob jPHPExcel-> getActiveSheet() - > getCell(“F34”) - > getOldCalculatedValue(),通过这个错误被忽略,但我认为我不能将整个工作表转储到数组中,因为我必须循环遍历整个片。需要指导 – 2014-12-09 13:11:48