【问题标题】:how to change the format of the columns of csv exported- laravel excel如何更改导出的csv列的格式-laravel excel
【发布时间】:2023-04-05 10:14:01
【问题描述】:

我用 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,

类超级导入:

<?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() 方法可以更改格式,但是我在文档中没有看到可用的格式,并且在执行代码时问题仍然存在。

请帮忙:(

【问题讨论】:

标签: laravel csv laravel-excel


【解决方案1】:

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

我的控制器也是如此:

  (new FastExcel(Super::all()))->export(storage_path('app/export/SuperFast.csv'), function ($super) {
      return [
          'ano_plantacion' => $super->ano_plantacion,
          'zona' => $super->zona,
          'sitio' => $super->sitio,
          'manejo' => $super->manejo,
          'sup_ha' => $super->sup_ha,
          'codigo' => $super->codigo,
          'repend' => $super->repend,
      ];
  });

这就是我的 csv 的样子:http://prntscr.com/squjh5

【讨论】:

    猜你喜欢
    • 2020-11-19
    • 2013-03-30
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2022-07-20
    相关资源
    最近更新 更多