Настройка ширины ячейки электронной таблицы с помощью PHPExcel


Я пытаюсь установить ширину ячейки в документе Excel, созданном с помощью PHPExcel, с помощью:

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

Но это не работает.

Какой метод мне нужно вызвать здесь?

Author: random, 2011-07-22

7 answers

Это тонкая разница, но для меня это прекрасно работает:

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

Обратите внимание, разница между getColumnDimensionByColumn и getColumnDimension

Кроме того, я даже не устанавливаю автоматический размер, и он отлично работает.

 137
Author: Jahmic, 2017-02-09 11:10:48

Привет, у меня та же проблема.. добавьте 0,71 к значению ширины ячейки excel и присвойте это значение

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

Например: Ширина столбца = 3,71 (значение excel)

Укажите ширину столбца = 4,42

Выдаст выходной файл с той же шириной ячейки.

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

Надеюсь, это поможет

 8
Author: King Alawaka, 2015-02-08 21:22:30

Метод setautosize должен предшествовать setWidth:

$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
 8
Author: Rolland, 2015-10-16 12:52:14

Это потому, что Getcolumndimensionbycolumn получает индекс столбца (целое число, начинающееся с 0), а не строку.

То же самое относится и к setcellvaluebycolumnandrow

 5
Author: shurbks, 2015-11-05 19:35:21

Правильный способ задать ширину столбца - использовать строку, опубликованную Jahmic, однако важно отметить, что дополнительно необходимо применить стиль после добавления данных, а не до, в противном случае в некоторых конфигурациях ширина столбца не применяется

 1
Author: Gustav Trenwith, 2014-08-14 08:32:39

Это сработало для меня:

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

Обязательно добавьте setAuzoSize(false), перед setWidth();, как упоминал Роллан

 1
Author: Magor Menessy, 2017-12-22 14:50:46

Автоматический размер для ширины столбца, заданной как показано ниже. Это работает для меня.

$spreadsheet->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
 0
Author: Du Luong, 2018-03-15 07:31:08