zhaqq/xlsx

PHP 库,用于写入 XLSX 文件

v1.0.0 2019-07-12 07:34 UTC

This package is auto-updated.

Last update: 2024-09-12 20:49:57 UTC


README

Build Status StyleCI Scrutinizer Code Quality Code Coverage Build Status Code Intelligence Status

安装

composer require zhaqq/xlsx

CLI 示例

    $writer = new Builder();
    $fileName = __DIR__ . '/data/xlsx_writer' . date('Ymd-His') . '.xlsx';
    $writer->buildHeader('sheet_name_1', [
         'title' => 'string',
         'content' => 'string',  
         'weight' => 'number',  
    ]);
    $writer->buildHeader('sheet_name_2', [
                 'title' => 'string',
                 'content' => 'string',  
                 'price' => 'price',  
    ]);
    foreach (rows(100) as $row) {
        $writer->writeSheetRow($row[0], $row[1]);
    }
    $writer->writeToFile($fileName);
    
    function rows($n = 100)
    {
        for ($i = 0; $i < $n; $i++) {
            if ($i % 2) {
                yield ['sheet_name_1', [
                    'title' . $i,
                    'content' . $i,
                    $i++,
                ]];
            } else {
                yield ['sheet_name_2', [
                    'title' . $i,
                    'content' . $i,
                    $i++,
                ]];
            }
        }
    }

使用函数

  • 操作:=A{n}+B{n} 或 =A2+B3
  • 类型:数字(价格,浮点3)

try {
    $writer   = new Builder();
    $fileName = __DIR__ . '/data/xlsx_writer' . date('Ymd-His') . '.xlsx';
    $writer->buildHeader('sheet_name_1', [
        'title'   => 'number',
        'content' => 'number',
        'weight'  => 'number',
    ]);

    foreach (rows() as $row) {
        $writer->writeSheetRow($row[0], $row[1]);
    }
    times($start);

    $writer->writeToFile($fileName);
    times($start);

} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}

function rows($n = 20)
{
    for ($i = 0; $i < $n; $i++) {
        yield ['sheet_name_1', [
            $i,
            $i,
            '=A{n}+B{n}',
        ]];
    }
}

使用

<?php

require __DIR__ . '/vendor/autoload.php';

use Zhaqq\Xlsx\Writer\Builder;

date_default_timezone_set('PRC');

try {
    $writer = new Builder();
    $fileName = __DIR__ . '/data/xlsx_writer' . date('Ymd-His') . '.xlsx';
    $writer->buildHeader('sheet_name_1', [
         'title' => 'string',
         'content' => 'string',  
         'weight' => 'number',  
    ]);
    $writer->buildHeader('sheet_name_2', [
                 'title' => 'string',
                 'content' => 'string',  
                 'price' => 'price',  
    ]);

    foreach (rows() as $row) {
        $writer->writeSheetRow($row[0], $row[1]);
    }

    $writer->writeToFile($fileName);

} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}

function rows($n = 100)
{
    for ($i = 0; $i < $n; $i++) {
        if ($i % 2) {
            yield ['sheet_name_1', [
                'title' . $i,
                'content' . $i,
                $i++,
            ]];
        } else {
            yield ['sheet_name_2', [
                'title' . $i,
                'content' . $i,
                $i++,
            ]];
        }
    }
}

配置

  • 单元格格式

更多配置信息 PHP_XLSXWriter

许可 MIT