0

Phpexcel を使用して Excel ファイルを読み取り、データベースにデータを挿入したいのですが、すべてを読み取ることができ、正常に動作しますが、すべての電話番号が先頭のゼロなしで保存されているデータベースを見ると、Phpexcel で先頭にゼロがある電話番号を読み取ることができませんこのように: 0212365498 として保存 212365498

4

1 に答える 1

4

CSV ファイルからインポートする場合は、値バインダーを使用して先行ゼロを保持できます。これが私の修正を実装した方法です。

「BindValueAsString」というクラスを作成しました

class BindValueAsString extends PHPExcel_Cell_DefaultValueBinder implements PHPExcel_Cell_IValueBinder
{
    public function bindValue(PHPExcel_Cell $cell, $value = null)
    {
        $cell->setValueExplicit($value, PHPExcel_Cell_DataType::TYPE_STRING);
        return true;
    }
} 

CSVファイルを読み込む前に値バインダーを設定する

$objReader    = PHPExcel_IOFactory::createReader('CSV');
PHPExcel_Cell::setValueBinder(new BindValueAsString());
$objPHPExcel  = $objReader->load('file.csv');
$worksheet    = $objPHPExcel->getActiveSheet();
$dataAsString = $worksheet->toArray();

以上です。または、ここで先行ゼロが修正されているバージョン 1.8.1 にアップグレードすることもできます。

于 2015-09-16T21:43:45.747 に答える