Create Excel Files With Line Breaks In PHP Using PHPSpreadSheet

Posted

in

by

Using PhpSpreadsheet, write text contents in an xlsx file with each words or paragraphs on it’s own line.

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 value with the three "Hello World !", one on it's own line
$sheet->setCellValue('A1', "Hello World !\nHello World !!\nHello World !!!");
$sheet->getStyle('A1')->getAlignment()->setWrapText(true);

// Using single quotes will not make the line break work
// Set cell B1 value with the three "Hello World !", one on it's own line
$sheet->setCellValue('B1', 'Hello World !\nHello World !!\nHello World !!!');
$sheet->getStyle('B1')->getAlignment()->setWrapText(true);

// Using single quotes and appending the line break with double quotes
// Set cell C1 value with the three "Hello World !", one on it's own line
$sheet->setCellValue('C1', 'Hello World !' . "\n" . 'Hello World !!' . "\n" . 'Hello World !!!');
$sheet->getStyle('C1')->getAlignment()->setWrapText(true);

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

// Save the new .xlsx file
$writer->save('create-xlsx-files-with-line-breaks.xlsx');

Test.

Run the following codes.

$ php create-xlsx-files-with-line-breaks.php

Result.

Open the generated file create-xlsx-files-with-line-breaks.xlsx.

// Set cell A1 value with the three "Hello World !", one on it's own line
$sheet->setCellValue('A1', "Hello World !\nHello World !!\nHello World !!!");
$sheet->getStyle('A1')->getAlignment()->setWrapText(true);

// Using single quotes will not make the line break work
// Set cell B1 value with the three "Hello World !", one on it's own line
$sheet->setCellValue('B1', 'Hello World !\nHello World !!\nHello World !!!');
$sheet->getStyle('B1')->getAlignment()->setWrapText(true);

// Using single quotes and appending the line break with double quotes
// Set cell C1 value with the three "Hello World !", one on it's own line
$sheet->setCellValue('C1', 'Hello World !' . "\n" . 'Hello World !!' . "\n" . 'Hello World !!!');
$sheet->getStyle('C1')->getAlignment()->setWrapText(true);

References:


Posted

in

by

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

Latest Tutorials

Web Dev Tutorials