2012-07-30 46 views
0

我使用PhpExcel将一些数据库导出到csv中。 因为我有很多损坏的数据,我检查它们并在必要时显示错误。PHPEXCEL在单元格中添加分隔符

所以我想在我的错误信息显示当一个字段包含我的分隔符(否则就惹我的分页):

$objWriter = PHPExcel_IOFactory::createWriter($this->_objErrorPHPExcel, 'CSV'); 
    $objWriter->setDelimiter('|'); 
    $objWriter->setEnclosure(''); 
    $objWriter->setUseBOM(true); 
    $objWriter->setPreCalculateFormulas(false); 
    $objWriter->save($strOutputFile); 
    unset($objWriter);  

当我救我的错误消息(像EM的电子邮件地址|[email protected]):

$this->$strExcelFileName->getActiveSheet()->setCellValueExplicit('F' . $intRow, $strError); 

而是在我的F细胞节省

电子邮件中包含 “|”性格

我最终

电子邮件包含F中

,并

|在G.

字符,然后我有同样的问题,当我保存在电子表格中的电子邮件,这是削减在2个单元。

感谢您的时间和建议:)

+0

为什么不直接使用['fputcsv()'](http://php.net/manual/en/function .fputcsv.php)PHPExcel是过于复杂的事情。 – DaveRandom 2012-07-30 10:37:28

+0

我有点同意,但不幸的是,使用它的选择不是我的... – mokk 2012-07-30 10:50:58

+2

嗯,我相当肯定你的问题将与'$ objWriter-> setEnclosure('');' - 你指定一个空的字段外壳,这意味着没有办法引用包含分隔符的字符串,所以显然它会被视为字段分隔符而不是我认为你需要做一些像'$ objWriter-> setEnclosure(''');' – DaveRandom 2012-07-30 11:01:02

回答

0

该解决方案由DaveRandom提供! :

那么我相当肯定你的问题将与 $ objWriter-> setEnclosure(''); - 您正在指定一个空字段 机箱,这意味着无法引用 包含分隔符的字符串,因此显然它将被视为字段 分隔符而不是文字字符。我认为你需要做的 类似$ objWriter-> setEnclosure( '“');