一个 Excel 处理包,希望能有人加入共同

一个Excel的处理包,希望能有人共同维护

由于工作的需要并不是每个人都能在工作中使用laravel这么优雅的框架的,而有些包则是专门给laravle定制的。在使用tp框架的时候就寻找了很多excel的处理包,说明文档可以说少之又少。所以我决定自己写一个excel的处理包提供给英语不是很好,且入行不久的同学使用。下面就简单介绍一下包的使用和安装方法。这个包很早之久就已经开源了,但是一直没时间就没有发布出来,也由于自己能力有限,怕写的不好。

一.composer安装

composer require bean/excel

github 地址 https://github.com/bean-du/excel

bean/excel 包含三个类

  1. ExcelReader 负责excel的读取
  2. ExcelWriter 负责excel的写入
  3. Helper 一个辅助的上传类(laravel用户完全不需要啦)
ExcelReander 类包主要负责读取Excel,智能的识别文件类型和读取文件,让你不在为导入的文件类型而烦恼,目前支持的格式有:xlsx ,xls,csv 。也就是说目前支持excel97-excel2003,excel2007和csv格式。

目前支持功能

1.自动判断传入文件类型
2.支持excel日期格式
3.支持公式计算值
4.支持自定义获取数据

使用实例:

   use Excel/ExcelReader;
   // 实例化ExcelReader类
   $reader = new ExcelReader($realPath);
   // 粗暴的获取Excel数据
   $data = $reader->readExcel()->readSheet()->getData();
   // 也可以这样使用
   $excel = $reader->readExcel();
   $sheetNumber = $excel->sheetNumber;
   $sheetName = $excel->sheetName[0];
   $sheet = $excel->readSheet($sheetName);
   $columnCount = $sheet->column;
   $rowCount = $sheet->row;
   $data = $sheet->getData()
ExcelWriter 是Excel导出类

目前支持功能

1.支持写入xslx xls csv格式
2.支持设置字体颜色
3.支持设置单元格背景颜色
4.支持设置单元格宽度(指定和自适应)
5.支持合并单元格
6.支持设置单元格对齐方式(水平、垂直)
7.支持多sheet操作
8.支持保存文件和浏览器输出

使用示例:

$writer = new ExcelWriter();

    for ($i = 0; $i < 100; $i++){
        for ($j = 0; $j < 10; $j++){
            $data[$i][$j] = 'test ['.$i.']+['.$j.']';
        }
    }
    $writer->setWidth(range('A','J'))
        ->setValue($data)
        ->setFormat('xls')
        ->setAlignment(array('A1','C1'),'CENTER')
        ->setBackgroundColor(array('A1','C1'),'#ccccc')
        ->setAlignment(array('A2','C2'),'RIGHT')
        ->setActiveSheetName('Bean')
        ->outPut('test.xls');

当然最后也要说下没能使用上laravel这么优雅的框架的同学,我也提供了一个Helper类帮助你去实现上传

Helper类使用示例:

 $help = new Helpers();
    if ($help->hasFile('file')){
        $file = $help->uploadFile('file');
        $fileExtension = $file->fileExtension();
        $fileName = $file->fileName();
        $fileSize = $file->fileSize();
        $fileMineType = $file->fileMineType();
    }else{
        echo '文件上传失败';
    }

由于本人能力有限,未能使用各种php的高级功能和技巧。且部分写excel的功能需要更加完善,希望能有大神指点或一起维护此包。也欢迎各位同学能去 issue
另外 我建了一个群讨论php 如何更优雅的处理excel ,群号:427556936

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 10
阿麦

建议项目地址贴下?虽然可以直接搜

6年前 评论

GitHub地址呢?

6年前 评论

@GhostCoder githubd地址在这里补充一下,谢谢大家 : https://github.com/bean-du/excel

6年前 评论

这种通用型的需求肯定有解决方案的,一直都是用的phpoffice

6年前 评论

@Tao 数据量大会报错吧

6年前 评论

@mingyun 你是说导出时候会报错,还是读取的时候报错?

6年前 评论

没有人用过这个么,下载的时候超快的,超省内存,楼主可以借鉴一下。
https://github.com/mk-j/PHP_XLSXWriter

6年前 评论

@mingyun 没注意 一直没接触到大文件

6年前 评论

感觉php 装拓展太麻烦,用php 干这个事,就像用 excel 做图~~

6年前 评论

@依剑听雨 但是毕竟php做的项目中也有一些复杂的表格导入或者导出的

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!