PHP code example of byk / excel

1. Go to this page and download the library: Download byk/excel library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

byk / excel example snippets


use Excel\Excel;
$headers = [
            ['field'=>'name','title'=>'姓名'],
            ['field'=>'age','title'=>'年龄'],
        ];
$data = [
    ['name'=>'张三','age'=>22],
];
// 保存的文件地址
$fileName = '/path/test.xls';
try {
    $res = Excel
    ::instance()//初始化
    ->setWidth(20)//设置单元格默认宽度
    ->setHeader($headers)//设置标题头数据
    ->setData($data)//设置要填充的数据
    ->setFileType('xls')//设置导出的文件格式
    ->create()//生成数据
    ->save($fileName);//保存为文件
    // $res===true 保存成功,否则返回的是错误信息
} catch (\Exception $e) {
}

use Excel\Excel;
$headers = [
    ['field'=>'name','title'=>'姓名','merge'=>true],
    ['field'=>'goods','title'=>'商品'],
    ['field'=>'num','title'=>'数量'],
];
$data = [
    [
        ['name'=>'张三','goods'=>'上衣','num'=>1],
        ['name'=>'张三','goods'=>'T恤','num'=>2],
        ['name'=>'张三','goods'=>'外套','num'=>1],
    ]
];
// 保存的文件地址
$fileName = '/path/test.xls';
try {
    $res = Excel
    ::instance()//初始化
    ->setWidth(20)//设置单元格默认宽度
    ->setDataType(2)//设置填充数据类型,1.普通二维数组,2.用于合并某列的三维数组 3.多个工作表数据
    ->setHeader($headers)//设置标题头数据
    ->setData($data)//设置要填充的数据
    ->setFileType('xls')//设置导出的文件格式
    ->create()//生成数据
    ->save($fileName);//保存为文件
    // $res===true 保存成功,否则返回的是错误信息
} catch (\Exception $e) {
}

use Excel\Excel;
$headers = [
    ['field'=>'name','title'=>'姓名','merge'=>true],
    ['field'=>'goods','title'=>'商品'],
    ['field'=>'num','title'=>'数量'],
];
$data = [
    [
        ['name'=>'张三','goods'=>'上衣','num'=>1],
        ['name'=>'张三','goods'=>'T恤','num'=>2],
        ['name'=>'张三','goods'=>'外套','num'=>1],
    ]
];
// 下载的文件名
$fileName = 'test.xls';
try {
    Excel
    ::instance()//初始化
    ->setWidth(20)//设置单元格默认宽度
    ->setDataType(2)//设置填充数据类型,1.普通二维数组,2.用于合并某列的三维数组 3.多个工作表数据
    ->setHeader($headers)//设置标题头数据
    ->setData($data)//设置要填充的数据
    ->setFileType('xls')//设置导出的文件格式
    ->create()//生成数据
    ->download($fileName);//下载
} catch (\Exception $e) {
}

use Excel\Excel;
$headers = [
    ['field'=>'name','title'=>'姓名','merge'=>true],
    ['field'=>'goods','title'=>'商品'],
    ['field'=>'num','title'=>'数量'],
];
$data = [
    [
        ['name'=>'张三','goods'=>'上衣','num'=>1],
        ['name'=>'张三','goods'=>'T恤','num'=>2],
        ['name'=>'张三','goods'=>'外套','num'=>1],
    ]
];
// 保存的文件路径
$fileName = '/path/test.xls';
try {
    $res = Excel
    ::instance()//初始化
    ->setWidth(20)//设置单元格默认宽度
    ->setDataType(2)//设置填充数据类型,1.普通二维数组,2.用于合并某列的三维数组 3.多个工作表数据
    ->setHeader($headers)//设置标题头数据
    ->setData($data)//设置要填充的数据
    ->setFileType('xls')//设置导出的文件格式
    ->create(function (\PhpOffice\PhpSpreadsheet\Spreadsheet $excel,$header, $data){
        //处理逻辑
    })//生成数据
    ->save($fileName);//保存为文件
    // $res===true 保存成功,否则返回的是错误信息
} catch (\Exception $e) {
}

use Excel\Excel;
$header = [
    [
        //工作表标题(必须)
        'headers'=>[
            ['field'=>'name','title'=>'姓名'],
            ['field'=>'age','title'=>'年龄'],
        ]
    ],
    [
        //工作表名称(可选)
        'sheet'=>'成绩表',
        //工作表标题(必须)
        'headers'=>[
            ['field'=>'name','title'=>'姓名','merge'=>true],
            ['field'=>'subject','title'=>'科目'],
            ['field'=>'score','title'=>'分数'],
        ],
        //工作表数据类型(可选),默认:1
        'data_type'=>2
    ]
];
$data = [
    [
        ['name'=>'张三','age'=>22],
        ['name'=>'李四','age'=>21],
        ['name'=>'王五','age'=>20],
    ],
    [
        '张三'=>[
            ['name'=>'张三','subject'=>'高数','score'=>99],
            ['name'=>'张三','subject'=>'英语(二)','score'=>90],
            ['name'=>'张三','subject'=>'近代史','score'=>80],
        ],
        '李四'=>[
            ['name'=>'李四','subject'=>'高数','score'=>80],
            ['name'=>'李四','subject'=>'英语(二)','score'=>30],
            ['name'=>'李四','subject'=>'近代史','score'=>99],
        ],
        '王五'=>[
            ['name'=>'王五','subject'=>'高数','score'=>88],
            ['name'=>'王五','subject'=>'英语(二)','score'=>66],
            ['name'=>'王五','subject'=>'近代史','score'=>100],
        ]
    ]
];
$fileName = '/path/test.xlsx';
try {
    $res = Excel
    ::instance()//初始化
    ->setWidth(20)//设置单元格默认宽度
    ->setDataType(3)//设置填充数据类型,1.普通二维数组,2.用于合并某列的三维数组 3.多个工作表数据
    ->setHeader($header)//设置标题头数据
    ->setData($data)//设置要填充的数据
    ->create()//生成数据
    ->save($fileName);//保存为文件
    // $res===true 保存成功,否则返回的是错误信息
} catch (\Exception $e) {
}

use Excel\Excel;
$headers = [
    ['field'=>'name','title'=>'姓名','merge'=>true],
    ['field'=>'goods','title'=>'商品'],
    ['field'=>'num','title'=>'数量','total'=>true],
];
$data = [
    [
        ['name'=>'张三','goods'=>'上衣','num'=>1],
        ['name'=>'张三','goods'=>'T恤','num'=>2],
        ['name'=>'张三','goods'=>'外套','num'=>1],
    ]
];
// 保存的文件地址
$fileName = '/path/test.xls';
try {
    $res = Excel
    ::instance()//初始化
    ->setWidth(20)//设置单元格默认宽度
    ->setDataType(2)//设置填充数据类型,1.普通二维数组,2.用于合并某列的三维数组 3.多个工作表数据
    ->setHeader($headers)//设置标题头数据
    ->setData($data)//设置要填充的数据
    ->setFileType('xls')//设置导出的文件格式
    ->create()//生成数据
    ->save($fileName);//保存为文件
    // $res===true 保存成功,否则返回的是错误信息
} catch (\Exception $e) {
}

use Excel\Excel;
$headers = [
    ['field'=>'name','title'=>'姓名','merge'=>true,'vertical'=>'center','horizontal'=>'center'],
    ['field'=>'goods','title'=>'商品'],
    ['field'=>'num','title'=>'数量','total'=>true],
];
$data = [
    [
        ['name'=>'张三','goods'=>'上衣','num'=>1],
        ['name'=>'张三','goods'=>'T恤','num'=>2],
        ['name'=>'张三','goods'=>'外套','num'=>1],
    ]
];
// 保存的文件地址
$fileName = '/path/test.xls';
try {
    $res = Excel
    ::instance()//初始化
    ->setWidth(20)//设置单元格默认宽度
    ->setDataType(2)//设置填充数据类型,1.普通二维数组,2.用于合并某列的三维数组 3.多个工作表数据
    ->setHeader($headers)//设置标题头数据
    ->setData($data)//设置要填充的数据
    ->setFileType('xls')//设置导出的文件格式
    ->create()//生成数据
    ->save($fileName);//保存为文件
    // $res===true 保存成功,否则返回的是错误信息
} catch (\Exception $e) {
}

use Excel\Excel;
$headers = [
    ['field'=>'name','title'=>'姓名','merge'=>true,'vertical'=>'center','horizontal'=>'center'],
    ['field'=>'goods','title'=>'商品','format_code'=>'s'],
    ['field'=>'num','title'=>'数量','total'=>true,'format_code'=>'0.00'],
];
$data = [
    [
        ['name'=>'张三','goods'=>'上衣','num'=>1],
        ['name'=>'张三','goods'=>'T恤','num'=>2],
        ['name'=>'张三','goods'=>'外套','num'=>1],
    ]
];
// 保存的文件地址
$fileName = '/path/test.xls';
try {
    $res = Excel
    ::instance()//初始化
    ->setWidth(20)//设置单元格默认宽度
    ->setDataType(2)//设置填充数据类型,1.普通二维数组,2.用于合并某列的三维数组 3.多个工作表数据
    ->setHeader($headers)//设置标题头数据
    ->setData($data)//设置要填充的数据
    ->setFileType('xls')//设置导出的文件格式
    ->create()//生成数据
    ->save($fileName);//保存为文件
    // $res===true 保存成功,否则返回的是错误信息
} catch (\Exception $e) {
}