MNB PHPExcelDeveloper Guide
v2.0.5
XLSX module

Writing XLSX Workbooks

Create simple exports, styled reports, validated templates, protected workbooks, and browser downloads.

Updated

LevelIntermediateReading time10 minPackagemnb/mnb-phpexcel
Xlsx::write()Xlsx::writeImportTemplate()WorkbookBuilder::save()

What you will learn

  • Choose the simple writer or the richer workbook builder.
  • Generate import templates with headers and validation.
  • Apply encryption and protection at the correct layer.

Use the simple writer for row exports#

PHP
Xlsx::write($orders, 'orders.xlsx', [
    'sheet_name' => 'Orders',
    'with_header' => true,
    'password' => getenv('REPORT_PASSWORD'),
    'encryption_mode' => 'agile',
]);

Use a builder for presentation features#

PHP
use Mnb\PHPExcel\Core\WorkbookBuilder;

WorkbookBuilder::fromWorkbookArray(['Orders' => $orders])
    ->withHeader()
    ->freezeHeader()
    ->autoFilter()
    ->styleHeader([
        'font' => ['bold' => true, 'color' => 'FFFFFF'],
        'fill' => ['color' => '137A43'],
    ])
    ->save('styled-orders.xlsx');

The detailed writer guides cover layout, styles, validation, comments, links, images, charts, pivots, and browser delivery.

Generate an import template#

PHP
Xlsx::writeImportTemplate([
    'sku' => ['label' => 'SKU', 'required' => true, 'example' => 'SKU-1001'],
    'name' => ['label' => 'Product name', 'required' => true],
    'price' => ['label' => 'Price', 'type' => 'decimal', 'example' => 49.95],
], 'product-import-template.xlsx', [
    'sheet_name' => 'Products',
]);

Separate encryption from document protection#

ControlPurposeAPI
Password to openEncrypts the XLSX package contents.password / Xlsx::encryptFile()
Workbook protectionRestricts structure changes after opening.protection_password with workbook settings
Worksheet protectionRestricts editing actions inside sheets.Sheet protection definitions or writer options