Dynamically set a row height of xlsx files in PhpSpreadsheet, a handy way to compress your data vertically.
Requirements:
- Composer
- PHP 7.2 or newer
Step 1.
Setup dependencies.
{
"require": {
"phpoffice/phpspreadsheet": "^1.3"
}
}Step 2.
Install phpspreadsheet.
$ composer install
Step 3.
Create a new PHP file, and start coding.
<?php // Autoload dependencies require 'vendor/autoload.php'; // Import the core class of PhpSpreadsheet use PhpOffice\PhpSpreadsheet\Spreadsheet; // Import the Xlsx writer class use PhpOffice\PhpSpreadsheet\Writer\Xlsx; // Create a new Spreadsheet object $spreadsheet = new Spreadsheet(); // Retrieve the current active worksheet $sheet = $spreadsheet->getActiveSheet(); /** * Loop through 'Column A - D'. */ foreach (range('A', 'D') as $letter) { // Set some data to 'Column A - D' of 'Row 5' $sheet->setCellValue($letter . '5', 'Column ' . $letter); } // Set the height of 'Row 5' to 75 pt. $spreadsheet->getActiveSheet()->getRowDimension('5')->setRowHeight(75); // Write a new .xlsx file $writer = new Xlsx($spreadsheet); // Save the new .xlsx file $writer->save('create-xlsx-files-with-row-height-settings.xlsx');
Test.
Run the following codes.
$ php create-xlsx-files-with-row-height-settings.php
Result.
Open the generated file create-xlsx-files-with-row-height-settings.xlsx.
“If you want to set a row height using a different unit of measure, then you can do so by telling PhpSpreadsheet what UoM the height value that you are setting is measured in. Valid units are pt (points), px (pixels), pc (pica), in (inches), cm (centimeters) and mm (millimeters).”
// Set the height of 'Row 5' to 75 px.
$spreadsheet->getActiveSheet()->getRowDimension('5')->setRowHeight(75, 'px');
Check row height.
- 1. Click row 5.
- 2. Click ‘Home’.
- 3. Click ‘Format’.
- 4. Select ‘Row Height’.
- 5. The ‘Row Height’ value is now visible.

Another way of checking the row height.
- 1. Right click on row 5.
- 2. Select ‘Row Height’.
- 3. The ‘Row Height’ value is now visible.
