4

在本地主机中,我可以将列格式设置为PHPExcel_Cell_DataType::TYPE_STRING,它的工作正常是使用这种类型的 .xls 文件

在此处输入图像描述

如果我在现场进行测试,我会得到类似的东西 在此处输入图像描述

列值设置为0

为什么我尝试PHPExcel_Cell_DataType::TYPE_STRING了格式是因为字符串就像65081035703021在 ms-excel 中显示为数字(以 10 为底)

我怎么了?

在此处输入图像描述

4

1 回答 1

0

试试这个代码

namespace App\Exports;

use PhpOffice\PhpSpreadsheet\Shared\Date;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
use Maatwebsite\Excel\Concerns\WithMapping;

class InvoicesExport implements WithColumnFormatting, WithMapping
{
    public function map($invoice): array
    {
        return [
            $invoice->invoice_number,
            Date::dateTimeToExcel($invoice->created_at),
            $invoice->total
        ];
    }

    public function columnFormats(): array
    {
        return [
            'B' => NumberFormat::FORMAT_DATE_DDMMYYYY,
            'C' => NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE,
        ];
    }
}

参考

于 2020-03-26T15:48:03.180 回答