Laravel使用rap2hpoutre/fast-excel实现Excel数据横向导出的方法
实现横向导出的方法
核心原因是rap2hpoutre/fast-excel遵循固定的导出映射规则:传入的二维数据源中,一级数组的每个元素对应Excel的单独一行,二级数组的每个值对应当前行的列内容。默认导出出现纵向排列,本质是传入了未嵌套的一维数组,每个值自动被识别为单独行的内容。
具体操作
- 修正导出的数据源结构,把所有需要放在同一行的横向内容,嵌套为单个二级数组元素:
错误写法(会导出纵向内容):
正确写法(会导出单行列的横向内容):// 一维数组的每个值会被逐行导出 $data = [ 'Questions', 'First Question', 'Second Question', 'Third Question' ]; return FastExcel::download($data, 'result.xlsx')->export();// 嵌套一层后,整个数组仅生成1行Excel内容 $data = [ [ 'Questions', 'First Question', 'Second Question', 'Third Question' ] ]; return FastExcel::download($data, 'result.xlsx')->export();
常见注意事项
- 如果导出内容是从数据库查询得到的列表,无需修改库的底层配置,只需要在传入导出方法前,把需要横向排列的同维度值收集到同一个数组内即可。
- 不要单独把表头作为一级数组元素传入,否则表头会单独占一行,后续内容会自动从第二行开始逐行纵向排列,破坏横向布局。
内容的提问来源于stack exchange,提问作者Mikhail Ladonkin
相关产品推荐
相关产品推荐

