tiderjian/qs-excel 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tiderjian/qs-excel

最新稳定版本:v1.3.7

Composer 安装命令:

composer require tiderjian/qs-excel

包简介

qs excel helper

README 文档

README

安装

composer require tiderjian/qs-excel

介绍

Excel文件生成及Excel文件读取

用法

ListBuilder

  • 生成单个sheet的excel文件
$options  = [
    'row_count' => 500,    //excel生成的行数
    'headers' => [
        [
            'title' => '读者编号',
        ],
        [
            'title' => '姓名',
        ],
        [
            'title' => '性别',
            'type' => 'list',
            'data_source' => '女,男'
        ],
        [
            'title' => '读者类型',
            'type' => 'list',
            'data_source' => '高年级学生,低年级学生,老师'
        ],
        [
            'title' => '读者状态',
            'type' => 'list',
            'data_source' => '停用,正常,注销,挂失'
        ],
        [
            'title' => '注册日期'
        ],
        [
            'title' => '学号'
        ]
    ]
];

//列表数据
//次序与类型必须与options对应
$data = [
    'DD123456',
    '张三',
    '',
    '高年级学生',
    '停用',
    '2016-07-10',
    'G44532220060903492X'
];
$excel = new \QsExcel\Excel();
$excel->addBuild(new \QsExcel\Builder\ListBuilder($options, $data));
$excel->output('reader_import.xlsx');
  • 生成多个sheet的excel文件
//大数组数据,总字符串长度超过565,将会自动生成数据源sheet进行存储
$project_arrs = [
    .
    .
    .
];

$book_arrs = [
    .
    .
    .
];

$options  = [
    'row_count' => 500,
    'headers' => [
        [
            'title' => '读者编号',
        ],
        [
            'title' => '姓名',
        ],
        [
            'title' => '性别',
            'type' => 'list',
            'data_source' => '女,男'
        ],
        [
            'title' => '项目',
            'type' => 'list',
            'data_source' => implode(',', $project_arrs)
        ],
        [
            'title' => '推荐书籍',
            'type' => 'list',
            'data_source' => implode(',', $book_arrs)
        ],
        [
            'title' => '注册日期'
        ],
        [
            'title' => '学号'
        ]
    ]
];

$options1  = [
    'row_count' => 500,
    'headers' => [
        [
            'title' => '读者姓名',
        ],
        [
            'title' => '学校',
        ],
        [
            'title' => '性别',
            'type' => 'list',
            'data_source' => '女,男'
        ],
        [
            'title' => '项目',
            'type' => 'list',
            'data_source' => implode(',', $project_arrs)
        ],
        [
            'title' => '注册日期'
        ],
        [
            'title' => '学号'
        ]
    ]
];

$excel = new \QsExcel\Excel();
$excel->addBuild((new \QsExcel\ListBuilder($options))->setSheetName('test'));
$excel->addBuild((new \QsExcel\ListBuilder($options1))->setSheetName('test1'));
$excel->output('reader_import.xlsx');
Cell Type
  • ListTypeBuilder 将单元格设置成下拉列表,支持三种设置数据源的方式
  1. 短字符串

短字符串的含义是小于565个字符,此时短字符串会直接设置为列表数据源,不会有额外的表格内容占用, 内容用","分隔。

[
    'title' => '性别',
    'type' => QsExcel\Builder\ListBuilder::LIST_TYPE,
    'data_source' => '男,女'
];
  1. 长字符串

长字符串是相对于短字符串而言的,也就是大于565个字符,此时qs-excel会自动生成一个名字为ListSource的sheet用于存放数据源

$arr = []; //大数组
[
    'title' => '性别',
    'type' => QsExcel\Builder\ListBuilder::LIST_TYPE,
    'data_source' => implode(',', $arr)
];
  1. 指定引用源

qs-excel 支持以 "sheet!$A$1:$A$20" 这种格式的方式设置任意表格的引用数据源

[
    'title' => '团队名',
    'type' => QsExcel\Builder\ListBuilder::LIST_TYPE,
    'data_source' => '团队信息!$B$2:$B$500'   // 团队信息为其他sheet的sheet名,前后两个列字母的必须一致,这个例子就是B
];
  • DateTypeBuilder 将单元格设置成日期格式
[
    'title' => '出生日期',
    'type' => QsExcel\Builder\ListBuilder::DATE_TYPE
];
  • MultiListTypeBuilder 多选类型

    该类型不会对数据进行准确性校验,只会在ListSource sheet增加可选的值

$arr = [ '标签1', '标签2', ...];
[
    'title' => '标签',
    'type' => QsExcel\Builder\ListBuilder::MULTI_LIST_TYPE,
    'data_source' => implode(',', $arr)
];

ListLoader

$file = __DIR__ . '/excel.xls';  
$excel = new Excel();
//需要读取多少个sheet的数据,则设置多少个loader,可根据不同的sheet类型来针对性的设置不同的loader类型
//默认第一个loader读取index为0的sheet 第二个读取index为1的sheet,以此类推
$excel->setLoadFile($file);
$excel->addLoader(new ListLoader());
$excel->addLoader(new ListLoader());
$excel->addLoader(new ListLoader());
$excel->addLoader(new ListLoader());
$list = $excel->load(); 

统计信息

  • 总下载量: 3.04k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-12-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固