Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP SpreadSheet can't find the function to auto size column width

I simply want the columns to autosized. I am using php spreadsheet and I can't find how to do it. Any advise ? This is my code

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Projects First Year');
$sheet->setCellValue('B1', 'Grades');

$sheet->setCellValue('A2', 'PHP Project 2020');
$sheet->setCellValue('B2', $_SESSION['phpScore']);
like image 808
ThunderBoy Avatar asked Dec 13 '22 08:12

ThunderBoy


2 Answers

Don't use range(). It won't work when cells beyond Z. Use instead

foreach ($sheet->getColumnIterator() as $column) {
   $sheet->getColumnDimension($column->getColumnIndex())->setAutoSize(true);
}
like image 112
Tara Avatar answered May 07 '23 13:05

Tara


For spreadsheet the answer is:

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;

  foreach (range('A','B') as $col) {
   $sheet->getColumnDimension($col)->setAutoSize(true);
}
like image 23
ThunderBoy Avatar answered May 07 '23 11:05

ThunderBoy