数据导出excel可以设置单元格长度为字段长度吗?或者不换行也行。

怎么调用setShouldWrapText(‘false’);方法。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

需要自己扩展导出功能

<?php

namespace App\Admin\Exporters;

use Box\Spout\Common\Entity\Style\Color;
use Box\Spout\Writer\Common\Creator\Style\StyleBuilder;
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
use Dcat\Admin\Exception\RuntimeException;
use Dcat\Admin\Grid\Exporters\ExcelExporter as DcatExcelExporter;
use Dcat\Admin\Grid;
use Dcat\EasyExcel\Excel;

class ExcelExporter extends DcatExcelExporter
{
    /**
     * {@inheritdoc}
     */
    public function export()
    {
        $filename = $this->getFilename().'.'.$this->extension;

        $exporter = Excel::export();

        if ($this->scope === Grid\Exporter::SCOPE_ALL) {
            $exporter->chunk(function (int $times) {
                return $this->buildData($times);
            });
        } else {
            $exporter->data($this->buildData() ?: [[]]);
        }

        $exporter->headings($this->titles())->row(function ($row) {
            /** Create a style with the StyleBuilder */
            $style = (new StyleBuilder())
                ->setFontBold()
                ->setFontSize(15)
                ->setFontColor(Color::BLUE)
                ->setShouldWrapText(false)
                ->setBackgroundColor(Color::YELLOW)
                ->build();

            /** Create a row with cells and apply the style to all cells */
            return WriterEntityFactory::createRowFromArray(array_values($row), $style);
        })->download($filename);

        exit;
    }
}

使用

use App\Admin\Exporters\ExcelExpoter;

$grid->export(new ExcelExpoter());
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!