PHPExcel:从文件中删除公式

时间:2014-08-07 14:43:49

标签: php phpexcel

我搜索了很多,但无法找到答案,所以我们走了:

我需要创建一些将从其他两个中提取数据的工作表。我已经创造了这两个,但其他人让我很头疼......

以下是代码:

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 part。"

当文件最终打开时,这两列用" 0" s填充。如果从字符串中删除等号,则生成文件,打开时没有错误,其余的公式就在那里!如果你把等号返回(在Excel中),一切正常。

我找到了类似的主题,但似乎没有什么能解决我的问题...

1 个答案:

答案 0 :(得分:1)

根据开发人员文档的4.6.4节:

  

将公式写入单元格在Excel文件中,公式始终是   存储,因为它们将出现在英文版的Microsoft Office中   Excel和PHPExcel以此格式在内部处理所有公式。   这意味着以下规则成立:

     
      
  • 小数分隔符为'。' (周期)
  •   
  • 函数参数分隔符为','(逗号)
  •   
  • 矩阵行分隔符为';' (分号)
  •   
  • 必须使用英文函数名称
  •   
     

这与使用哪种语言版本的Microsoft Office Excel创建Excel文件无关。

唯一的例外是,如果您使用区域设置来处理英语/美国公式与具有;分隔符和区域设置语言函数名称的本地化公式名称之间的转换

你使用;作为函数参数分隔符,你没有引用你的字符串(例如你的VLOOKUP中的$ user ['manager'])