如何更改csv导出的列的格式-Laravel Excel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改csv导出的列的格式-Laravel Excel相关的知识,希望对你有一定的参考价值。

我用laravel-excel 3.1导出了一个csv文件,并且在检查值时将其括在引号中,因此它们以字符串形式导出,但我需要将其键入数字类型中]]

导出的csv文件:

"ano_plantacion","zona","sitio","manejo","sup_ha","codigo","rpend"
"2018","87","3","10","30.69","2042201801",""
"2017","87","3","10","14.86","2042201701",""

我想要或应该是:

ano_plantacion,zona,sitio,manejo,sup_ha,codigo,rpend
2018,87,3,10,30.69,2042201801,
2017,87,3,10,14.86,2042201701,

Class SuperImport:

<?php

namespace App\Exports;

use App\Super;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;


class SuperExport implements FromCollection,WithHeadings, WithColumnFormatting

    use Exportable;

    protected $superficie;

    public function __construct($superficie = null)
    
        $this->superficie = $superficie;
    
    public function headings(): array
    
        return [
            'ano_plantacion',
            'zona',
            'sitio',
            'manejo',
            'sup_ha',
            'codigo',
            'rpend',

        ];
    

    public function columnFormats(): array
    
        return [
            'A' => NumberFormat::FORMAT_GENERAL,
            'B' => NumberFormat::FORMAT_GENERAL,
            'C' => NumberFormat::FORMAT_GENERAL,
            'D' => NumberFormat::FORMAT_GENERAL,
            'E' => NumberFormat::FORMAT_GENERAL,
            'F' => NumberFormat::FORMAT_GENERAL,
            'G' => NumberFormat::FORMAT_GENERAL,
        ];
    

    /**
    * @return \Illuminate\Support\Collection
    */
    public function collection()
    
        return $this->superficie ?: Super::all();
    

控制器:

$super = Super::select('ano_plantacion','zona','sitio', 'manejo','sup_ha','codigo','rpend')->get();
Excel::store( new SuperExport($super), 'export/Super.csv' );

假设使用columnFormats()方法可以更改格式,但是我在文档中看不到可用的格式,并且在执行代码时问题仍然存在。

Help pls:(

我使用laravel-excel 3.1导出了一个csv文件,并且在检查值时将其括在引号中,因此它们将以字符串形式导出,但是我需要将其以类型编号导出csv文件:“ ...

答案

我找到了另一个解决方案,而不是使用laravel excel,而是尝试了另一个库:https://github.com/rap2hpoutre/fast-excel

以上是关于如何更改csv导出的列的格式-Laravel Excel的主要内容,如果未能解决你的问题,请参考以下文章

PHPmyadmin 3.4.9 导出到 CSV 的问题

怎样用宏把EXCEL里C列的数据全部自动导出保存为CSV格式?

SAS将数据集导出为csv或excel,保留换行符

R数据导入导出: read.table()和read.csv()的区别

PySpark:如何将具有 SparseVector 类型的列的 Spark 数据帧写入 CSV 文件?

Java导出csv数字如何不以科学计数显示,不能改变原来的值