2017-01-19 7 views
1

すべての列の書式を設定する必要があります。FORMAT_NUMBERPHPExcel - 列の書式

これは1つのセルに対して実行できます。しかし、私は列全体Bのためにすることはできません。

$objPHPExcel->getActiveSheet()->getStyle('B2')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); 

列B全体の設定方法は? PHPExcel_Style_NumberFormat :: FORMAT_NUMBER

+0

'getStyle( 'B')'だけでは機能しませんか?私はそれが色や背景などのスタイルで動作することを知っています。 – Chris

+0

いいえ動作しない –

+0

使用している[this repo](https://github.com/PHPOffice/PHPExcel)の場合、マスタービルドに失敗し、エラー時に開発ビルドが失敗することにご注意ください。私は[box/spout repo](https://github.com/box/spout)に移動することをお勧めします。残念ながら、あなたのためのフォーマットオプションを素早く見て、 'FORMAT_NUMBER'はサポートされていませんでした。しかし、より安定しています。 – Nukeface

答えて

0
foreach (range('B', $objPHPExcel->getActiveSheet()->getHighestDataRow()) as $col) { 
$objPHPExcel->getActiveSheet()->getStyle('B'.$col)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); 
     } 
3

あなたは、個々の細胞のために、またはセルの範囲のためのスタイリングを設定することができます。列や行には適用されません。

だからあなたが列Bでのスタイルを設定したい最初と最後の行を識別し、その範囲の文字列を構築

$objPHPExcel->getActiveSheet() 
    ->getStyle('B2:B1024') 
    ->getNumberFormat() 
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); 

を使用し、範囲のスタイルを設定します。

$ column = 'B'; $ firstRow = 2; $ lastRow = 1024;

$objPHPExcel->getActiveSheet() 
    ->getStyle($column.$firstRow.':'.$column.$lastRow) 
    ->getNumberFormat() 
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); 
+0

そして、正確な行数がわからないのですか? –

+0

次に、$ objPHPExcel-> setActiveSheetIndex() - > getHighestRow();または$ objPHPExcel-> setActiveSheetIndex() - > getHighestDataRow();を使用するか、 –