web-dev-qa-db-ja.com

PHPExcelを使用してスプレッドシートセルの幅を設定する

私はPHPExcelで生成されたExcelドキュメントのセルの幅を次のように設定しようとしています:

$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);

しかし、それは機能しません。

ここで呼び出す必要があるメソッドは何ですか?

64
user198003

それは微妙な違いですが、これは私にとってはうまくいきます:

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);

getColumnDimensionByColumngetColumnDimensionの違いに注意してください。

また、私はAutoSizeを設定することすらしていないため、正常に機能します。

153
Jahmic

setAutoSizeメソッドは、setWidthの前に来る必要があります。

$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
9
Rolland

こんにちは私は同じ問題を得た.. Excelのセル幅の値に0.71を追加し、その値を

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);

例:A列幅= 3.71(Excel値)

列幅= 4.42を与える

同じセル幅の出力ファイルを提供します。

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(4.42);

この助けを願っています

8
King Alawaka

これは、文字列ではなくgetColumnDimensionByColumnが列インデックス(0から始まる整数)を受け取るためです。

setCellValueByColumnAndRowについても同じことが言えます

5
shurbks

以下に設定されている列幅のautoSize。わたしにはできる。

$spreadsheet->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
3
Du Luong

これは私のために働いた:

$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10);

rollandが言及したように、必ずsetAuzoSize(false)beforesetWidth();を追加してください

1
Magor Menessy

列幅を設定する正しい方法は、Jahmicが投稿した行を使用することですが、さらに、スタイリングを適用する必要があることに注意することが重要ですafter一部の構成では、列幅は適用されません

1
Gustav Trenwith