Create Excel Files With Page Orientation And Paper Size Settings In PHP Using PHPSpreadSheet

| July 18, 2020 | 2,604 views | PhpSpreadsheet

When printing xlsx files, there are two (2) options of page orientation (the manner in which the paper will be printed), they are the portrait (vertically positioned page), and the landscape (horizontallly positioned page).

The portrait option is the default setting when creating an xlsx file, but it can be programmatically changed with PhpSpreadsheet.

Another page setup setting that can be coded in PhpSpreadsheet is the paper size option, the default option is the letter size, which can be changed to A4 size for example.

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();

// Set cell A1 with the "Hello World !" string value
$sheet->setCellValue('A1', 'Hello World !');

// Set page orientation to landscape
$sheet->getPageSetup()->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE);

// Set paper size to A4
$sheet->getPageSetup()->setPaperSize(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4);

// Write a new .xlsx file
$writer = new Xlsx($spreadsheet);

// Save the new .xlsx file
$writer->save('create-xlsx-files-with-page-orientation-and-paper-size-settings.xlsx');

Test.

Run the following codes.

$ php create-xlsx-files-with-page-orientation-and-paper-size-settings.php

Result.

Open the generated file create-xlsx-files-with-page-orientation-and-paper-size-settings.xlsx.

// Set page orientation to landscape
$sheet->getPageSetup()->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE);

// Set paper size to A4
$sheet->getPageSetup()->setPaperSize(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4);

Default settings.

References:

0 Comments

Leave a Reply

Your email address will not be published.