Установка ширины ячейки электронных таблиц с помощью PHPExcel
Я пытаюсь установить ширину ячейки в документе Excel, сгенерированном PHPExcel, с помощью:
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
но это не работает.
Каков метод, который мне нужно вызвать здесь?
Ответы
Ответ 1
Это тонкая разница, но это отлично работает для меня:
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
Обратите внимание, что разница между getColumnDimensionByColumn
и getColumnDimension
Кроме того, я даже не устанавливаю AutoSize, и он отлично работает.
Ответ 2
Метод setAutoSize должен появиться перед setWidth:
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn('C')->setWidth('10');
Ответ 3
Привет, у меня такая же проблема.
добавьте 0,71 к значению ширины ячейки excel и присвойте этому значению значение
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
например:
Ширина столбца = 3,71 (значение excel)
укажите ширину столбца = 4.42
предоставит выходной файл с той же шириной ячейки.
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(4.42);
надеюсь, что эта помощь
Ответ 4
Tha объясняется тем, что getColumnDimensionByColumn получает индекс столбца (целое число начиная с 0), а не строку.
То же самое относится к setCellValueByColumnAndRow
Ответ 5
autoSize для ширины столбца, установленной ниже. Меня устраивает.
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
Ответ 6
Правильный способ установки ширины столбца - это использовать строку, опубликованную Jahmic, однако важно отметить, что дополнительно вам нужно применить стиль после добавления данных, а не раньше, в противном случае на некоторых конфигурациях ширина столбца не применяется
Ответ 7
Это сработало для меня:
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(false);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10);
обязательно добавьте setAuzoSize(false)
, до setWidth();
, о котором упоминал Rolland