【发布时间】: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() 方法可以更改格式,但是我在文档中没有看到可用的格式,并且在执行代码时问题仍然存在。
请帮忙:(
【问题讨论】:
-
我找到 phpoffice.github.io/PhpSpreadsheet/1.11.0/PhpOffice/… 的格式,并更改为 FORMAT_NUMBER 并继续使用引号导出:(
标签: laravel csv laravel-excel