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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4
Jourdon

maatwebsite/excel 感觉太耗内存了,可以试试 fast-excel,

5年前 评论
夏天 (楼主) 5年前
fatrbaby

按照 semver 的规则,主版本号本来就是做不兼容 API 修改的,升级了主版本号,语法当然不一样了。这不算是坑,只是你不了解而已。

5年前 评论
夏天 (楼主) 5年前

这个 composer 很不错的,尤其是里面的 queueImport,简直不要太爽。
这里有个坑是显示 line1 ……height ……line2 的
大概是这么个错误提示。
这个的原因是因为 excel 文件坏了。
删除多余的空白 sheet 就好了。

5年前 评论
xuri

推荐一个功能丰富、兼容性好、高性能的 Excel 文档基础库:github.com/xuri/excelize

4年前 评论