Дополнительно
Ширину столбца авто размер PHPExcel
Я'м пытаясь авторазмер столбцов моего листа. Я'м пишу в файл и в конце я пытаюсь изменить все мои столбцы.
// Add some data
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('B1', 'test1111111111111111111111')
->setCellValue('C1', 'test1111111111111')
->setCellValue('D1', 'test1111111')
->setCellValue('E1', 'test11111')
->setCellValue('F1', 'test1')
->setCellValue('G1', 'test1');
foreach($objPHPExcel->getActiveSheet()->getColumnDimension() as $col) {
$col->setAutoSize(true);
}
$objPHPExcel->getActiveSheet()->calculateColumnWidths();
Приведенный выше код не'т работу. Не't изменить размер столбца, чтобы соответствовать текст
Обновление
Писатель Я'м через $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
92
15
Если столбец имеет значение свойства AutoSize, PHPExcel попытки рассчитать ширину столбца на основе рассчитанных значений столбца (так на результат любой формулы), и каких-либо дополнительных символов, добавленных в формате маски, такие как разделители тысяч.
По умолчанию это
оценивается
ширина: более точный метод расчета, основанных на использовании GD, который может также обрабатывать шрифт стиля, такими как полужирное и курсивное начертание; но это гораздо больший нагрузку, поэтому она выключена по умолчанию. Вы можете дать более точный расчет, используяОднако, авторазмер не'т распространяется на все форматы писатель... например в CSV. Вы Don'т отметить, что писатель вы're, используя.
Но вы также должны указать столбцы, в комплект размеры:
$objPHPExcel->getActiveSheet()->getColumnDimension()
принимает идентификатор столбца.$objPHPExcel->getActiveSheet()->getColumnDimensions()
возвращает массив всех определенных столбцов параметров записи; но если столбец размер записи был явно создан (возможно, путем загрузки шаблона или вручную звоню getColumnDimension ()`), то он выиграл'т существуют (экономия памяти).Если вам нужно, чтобы сделать это на нескольких листах, и несколько столбцов в каждом листе, вот как можно перебрать все из них:
Здесь более гибкий вариант, основанный на @Марк Бейкер пост:
Надеюсь, что это помогает ;)
Это пример, как использовать все столбцы из таблицы:
Этот фрагмент кода будет автоматически размер всех столбцов, которые содержат данные во всех листах. Нет необходимости использовать объект activesheet геттер и сеттер.
для phpspreadsheet:
В случае, если кто-то ищет этого.
Разрешение ниже, также работает на PHPSpreadsheet, их новая версия PHPExcel.
Что эти методы:
getHighestColumn($строки = значение null)
- получить высокий листе столбец.getHighestDataColumn($строки = значение null)
- получить высокий листе столбец, который содержит данные.getHighestRow($столбец = значение null)
- получить высокий листе строкиgetHighestDataRow($столбец = значение null)
- получить высокие строки таблицы, которая содержит данные.Если вы пытаетесь перебрать с
для ($кол = 2; $коль <= 'АС'; ++ $кол){...}
, или `по каждому элементу(диапазон('Это','АС') как $кол) { ... } это будет работать для столбцов от A до Z, но это не передать з (Исх. чередовать 'Это' до 'АС').Для того, чтобы перебрать посадочный 'з', нужно преобразовать столбец на число, инкремент, сравнить, и сделать его как строку:
При этом, вы легко перебирать пройти 'з' столбец и установите свойство AutoSize в каждом столбце.
вы также должны указать столбцы, в комплект размеры:
Пришел поздно, но, после долгих поисков, я'ве создали решение, которое, кажется, чтобы быть "один и".
Быть известно, что есть итератор колонке на последней версии API, но не зная, как atuoadjust объекта колонна это сам, в основном я'вэ создал цикл, чтобы перейти от реальной первом столбце В последней используется один.
Вот он идет:
Для Spreedsheet + на PHP 7, Вы должны написать вместо
PHPExcel_Cell::columnIndexFromString
,\PhpOffice\PhpSpreadsheet\клетка::columnIndexFromString
. И в петлю-это ошибка, там вы должны<
не работать с<=
. В противном случае, он принимает столбец слишком много в петлю.Ланг-РНР // Авторазмер столбцов для всех таблиц по каждому элементу ($objPHPExcel->getWorksheetIterator() как $лист) { по каждому элементу ($листе->getColumnIterator() как $столбец) { $лист ->колонки&getColumnDimension($ГТ;getColumnIndex()) ->setAutoSize(истина); } }