0

PhpExcelを使用してデータベースの一部をcsvにエクスポートします。破損したデータがかなりあるので、チェックして必要に応じてエラーを表示します。

したがって、フィールドにセパレータが含まれている場合はエラーメッセージに表示したいと思います(そうでない場合は、ページネーションが混乱します):

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

エラーメッセージを保存すると(em | ail@email.comなどのメールアドレスの場合):

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

Fセルに保存する代わりに

メールには「|」が含まれています キャラクター

私は結局

メールには

Fで、そして

|

Gの文字。

メールをスプレッドシートに保存すると同じ問題が発生します。2つのセルにカットされます。

あなたの時間とアドバイスをありがとう:)

4

1 に答える 1

0

ソリューションは DaveRandom によって提供されました。:

あなたの問題が $o​​bjWriter->setEnclosure( '' ); に関連していることは確かです。- 空のフィールド エンクロージャを指定しています。つまり、区切り記号を含む文字列を引用する方法がないため、明らかにリテラル文字ではなくフィールド区切り記号として表示されます。$objWriter->setEnclosure( '"' ); のようなことをする必要があると思います。

于 2012-07-31T08:39:20.693 に答える