You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中Excel导出:如何将单个单元格转为多行?

Excel导出单元格内多行显示问题解决方案

问题描述

将数据表导出为Excel文件时,SKU列处理遇到问题:使用str_replace将<br>替换为\n后,导出的SKU仍为单行显示,需要实现单元格内多行展示效果。

当前代码

Excel::store((new StandardExport($q))->setHeaders([ 
    'SKU',
    'Order Number',
    'Create Date',
    'Update Date',
    'Payment Method',
    'Shipping Provider',
    'Tracking Number',
    'Status',
    'Seller Remark',
    'Buyer Phone',
    'Buyer Name',
    'Buyer Address',
    'Buyer Remark',
    'Shop Name'
])->setMap(function ($row) {
    return [
        str_replace("<br>", "\n", $row->sku),
        $row->order_number,
        $row->create_at,
        $row->update_at,
        $row->paymentMethod,
        $row->logistics_info,
        str_replace("<br>", "\n", $row->tracking_number),
        $row->status,
        $row->seller_remark,
        $row->buyer_phone,
        $row->buyer_name,
        $row->buyer_address,
        $row->buyer_remark,
        $row->shopname
    ];
}), $filename);

效果对比

  • 当前效果:SKU列内容单行显示
  • 期望效果:SKU列内容在单元格内自动换行,多行展示

解决方案

1. 为目标列设置自动换行样式

仅替换换行符无法让Excel自动换行,必须为对应单元格开启自动换行属性。基于Laravel Excel库,修改StandardExport类添加样式设置:

use Maatwebsite\Excel\Events\AfterSheet;

class StandardExport implements FromQuery, WithEvents, WithHeadings, WithMapping
{
    // 原有逻辑代码保持不变

    public function registerEvents(): array
    {
        return [
            AfterSheet::class => function(AfterSheet $event) {
                $sheet = $event->sheet->getDelegate();
                
                // 为SKU列(A列)设置自动换行
                $sheet->getStyle('A:A')->getAlignment()->setWrapText(true);
                // 若Tracking Number列(G列)也需要,同样设置
                $sheet->getStyle('G:G')->getAlignment()->setWrapText(true);
            },
        ];
    }
}

2. 替换为Windows兼容换行符

部分环境下\n无法被Excel识别,可替换为\r\n:

str_replace("<br>", "\r\n", $row->sku)

3. 验证要点

  • 确认替换后的字符串已包含正确的换行符
  • 确保目标列的自动换行样式已启用
  • 导出后打开Excel,检查单元格是否正常换行

内容的提问来源于stack exchange,提问作者Hafiz-Payrecon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:42:27