web-dev-qa-db-ja.com

phpexcelはセルの範囲にデータ型を設定します

PHPExcel で、私は使用しています:

$workSheet->fromArray($array);

私のデータを設定します。ただし、1つの列を文字列として設定する必要があります(先行ゼロのある数値。stringに設定されていない場合、先行ゼロは切り捨てられます)。 fromArrayメソッドを使用していなかった場合は、PHPExcel_Worksheet::setCellValueExplicit()を使用してデータ型を設定できます。

ただし、これは一連の列を使用して実行したいと思います。理想的には次のようなものです。

$worksheet->getCell('A1:A50')->setDataType(PHPExcel_Cell_DataType::TYPE_STRING);

しかし、コードを見ると、getCellは範囲を許可せず、単一のセルのみを許可します。これどうやってするの?

21
Ashley

現在、PHPExcelには、個々のセルに対してのみ、セルの範囲のデータ型を設定できるメソッドはありません。

いくつかのオプションがあります...セル値がfromArray()によって設定されたときに、それらのセルのデータ型を文字列に自動的に設定するカスタムセル値バインダーを作成するのは難しいでしょう。

代わりにできること(そしてはるかに簡単)は、データ型を数値として、値を数値として残すことですが、Excelに先行ゼロ付きの数値を表示するように指示する数値形式マスクを設定します。

$objPHPExcel->getActiveSheet()->getStyle('L3:N2048')
                              ->getNumberFormat()->setFormatCode('0000');
12
Mark Baker