Laravel Excel 遇到的坑
laravel使用Laravel Excel导出csv
最近在项目中需要将数据导出为csv,从网上看到Laravel Excel还不错,记录下遇到的几个坑。
1.Laravel Excel 2.0的版本和3.0的版本有很大的区别,使用composer加载的时候要注意版本,3.0和2.0的语法基本不同了
2.我使用的是2.0的版本
- 首先通过composer安装依赖
composer require maatwebsite/excel ~2.1
- 发布配置
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
-修改配置文件excel.php(这个很重要,如果不做修改的话excel识别不到你的编码就会出现乱码的情况)
在config/excel.php中找到csv,把里面的use_bom=>false改为use_bom=>true,这样导出的csv文件就会有bom头,不会出现乱码。
- 使用
Excel::create(iconv('UTF-8', 'GBK', '文章点赞数据'),function ($excel) use($params){ $excel->sheet('score',function ($sheet) use($params){ $sheet->rows($params); }); })->export('csv');
本作品采用《CC 协议》,转载必须注明作者和本文链接
maatwebsite/excel
感觉太耗内存了,可以试试 fast-excel,按照semver的规则,主版本号本来就是做不兼容API修改的,升级了主版本号,语法当然不一样了。这不算是坑,只是你不了解而已。
这个composer很不错的,尤其是里面的queueImport,简直不要太爽。
这里有个坑是显示 line1 ……height ……line2的
大概是这么个错误提示。
这个的原因是因为excel文件坏了。
删除多余的空白sheet就好了。
推荐一个功能丰富、兼容性好、高性能的 Excel 文档基础库:github.com/xuri/excelize