2012-07-30 79 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( '「');