【笔记】Maatwebsite/Excel 解决方法集锦

Laravel tytrock ⋅ 于 2017-12-12 09:25:42 ⋅ 10889 阅读


官方文档:http://www.maatwebsite.nl/laravel-excel/docs/getting-started

关于导入

1.关于中文乱码

Excel::load('filename.csv', function($reader) {

}, 'UTF-8');

或者在配置文件 excel.php(在安装这个模块的文档有介绍怎么生成这个文件)

'to_ascii'                => false, //主要修复一些乱码


2.导入xlsx文件时只读取第一个sheet并且转化为数组

$data = Excel::load($request->file('file'), 'GB18030', function($reader) {
            
}, 'UTF-8')->all();

$dataArr = $data->first()->toArray();


3.导入的excel里单元格存在换行的数据,要去掉换行字符

str_replace(chr(10),'',str_replace('\n','',$data));



关于导出

1.数据量大时导出超时,可导出为excle能够解析的txt文件,再用excel打开(\t:分隔单元格;\r\n换行)

$str.=$name1."\t".$name2."\r\n";


2.导出中文文件名乱码,使用iconv('UTF-8', 'GBK', '文件名')

$filename = '学生成绩表';
Excel::create(iconv('UTF-8', 'GBK', $filename), function($excel) use ($filename,$data) {
    $excel->sheet($filename, function($sheet) use ($data) {
        ...
    });
})->export('xlsx');
本帖已被设为精华帖!
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter