我找了很多遍,但没有找到答案,所以我们开始:
我需要创建一些表格,这将从其他两个数据。我已经创造了这两个,但其他的让我头疼.
以下是代码:
foreach ($result_user as $user)
{
$objPHPExcel->getActiveSheet()
->setCellValue('A' . $i, iconv('ISO-8859-1','UTF-8',$user['name']))
->setCellValue('B' . $i, iconv('ISO-8859-1','UTF-8',$user['email']))
->setCellValue('C' . $i, '=VLOOKUP(' . $user['manager'] . ';source_users!A:B;2;FALSE)')
->setCellValue('D' . $i, '=COUNTIF(source_shops!A2:A' . $total_shops . ';A' . $i . ')')
->setCellValue('E' . $i, '=source_users!B' . $i)
->setCellValue('F' . $i, '=G' . $i . '*100/H' . $i);
$i++;
}*$total_shops是"source_shops“工作表的大小。
C和D列根本不工作。当打开创建的xlsx文件时,我会收到以下错误:
Excel在'filename.xlsx‘中找到了不可读的内容。要恢复“此工作簿”的内容吗?如果您信任此工作簿的来源,请单击“是”。“
在单击“是”之后,这个显示:
Excel能够通过修复或删除不可读的内容来打开文件。已删除的记录: /xl/worksheets/sheet3.xml部分中的公式。
当文件最终打开时,这两列将填充“0”。如果从字符串中删除等号,则生成文件,打开时不会出现错误,公式的其余部分就在那里!如果你把等号放回去(在Excel中),一切都正常。
我找到了类似的线索,但似乎没什么能解决我的问题.
发布于 2014-08-07 16:26:34
根据开发人员文件第4.6.4节:
将公式写入Excel文件中的单元格中,公式总是存储在英文版本的中,PHPExcel在内部以这种格式处理所有公式。这意味着以下规则适用:
这与的哪个语言版本可能用于创建Excel文件无关。
唯一的例外是,如果您使用地区设置来处理带有;分隔符和地区语言函数名称的英语/US公式和本地化公式名称之间的转换。
如果使用;作为函数参数分隔符,则不引用字符串(例如,VLOOKUP中的$user‘’manager‘)
https://stackoverflow.com/questions/25185442
复制相似问题