Laravel Excel - 数值自动改变
Laravel Excel - Number value auto change
所以我有一些数据,我将其保存为数据库中的 Varchar,数据示例:3578012605010001
,当我将数据导出到 excel 时,它会变为 3,57801E+15
,然后我尝试将其更改为数字,结果是 3578012605010000
我认为它有效。但后来我意识到它没有,它将最后一个数字从 1 更改为 0,这不是数据库中的确切数据。我想要一个导出精确数据的结果,例如 3578012605010001
.
Anw,这是我从查询导出到 excel 的代码,我使用 Laravel Excel 包。
class PengawasExport extends \PhpOffice\PhpSpreadsheet\Cell\StringValueBinder implements FromCollection, WithHeadings, ShouldAutoSize, WithColumnFormatting
{
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
$dataTanggalMulai = Master::first();
$dataTanggalSelesai = Master::first();
$from = $dataTanggalMulai->periode_mulai;
$to = $dataTanggalSelesai->periode_akhir;
$pengawas = Penugasan::join('pengawas', 'penugasans.pengawas_id', 'pengawas.id')
->join('ujians', 'penugasans.ujian_id', 'ujians.id')
->groupBy('pengawas.nama', 'pengawas.nik', 'pengawas.pns', 'pengawas.bank', 'pengawas.norek')
->whereBetween('ujians.tanggal', [$from, $to])
->selectRaw('pengawas.nama, pengawas.nik, pengawas.pns, pengawas.bank, pengawas.norek, count(*) as total')
->get();
return $pengawas;
}
public function headings(): array
{
return [
'Nama',
'NIP/NPI/NIK',
'Status Kepegawaian',
'Nama Bank',
'Nomor Rekening',
'Total Mengawas'
];
}
public function columnFormats(): array
{
return [
'A' => NumberFormat::FORMAT_TEXT,
'B' => NumberFormat::FORMAT_NUMBER,
'C' => NumberFormat::FORMAT_TEXT,
'D' => NumberFormat::FORMAT_TEXT,
'E' => NumberFormat::FORMAT_NUMBER
];
}
}
这是我要导出的示例数据集
尝试为您需要显示完整数字的特定列添加“0”
public function columnFormats(): array
{
return [
// F is the column
'F' => '0'
];
}
所以我有一些数据,我将其保存为数据库中的 Varchar,数据示例:3578012605010001
,当我将数据导出到 excel 时,它会变为 3,57801E+15
,然后我尝试将其更改为数字,结果是 3578012605010000
我认为它有效。但后来我意识到它没有,它将最后一个数字从 1 更改为 0,这不是数据库中的确切数据。我想要一个导出精确数据的结果,例如 3578012605010001
.
Anw,这是我从查询导出到 excel 的代码,我使用 Laravel Excel 包。
class PengawasExport extends \PhpOffice\PhpSpreadsheet\Cell\StringValueBinder implements FromCollection, WithHeadings, ShouldAutoSize, WithColumnFormatting
{
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
$dataTanggalMulai = Master::first();
$dataTanggalSelesai = Master::first();
$from = $dataTanggalMulai->periode_mulai;
$to = $dataTanggalSelesai->periode_akhir;
$pengawas = Penugasan::join('pengawas', 'penugasans.pengawas_id', 'pengawas.id')
->join('ujians', 'penugasans.ujian_id', 'ujians.id')
->groupBy('pengawas.nama', 'pengawas.nik', 'pengawas.pns', 'pengawas.bank', 'pengawas.norek')
->whereBetween('ujians.tanggal', [$from, $to])
->selectRaw('pengawas.nama, pengawas.nik, pengawas.pns, pengawas.bank, pengawas.norek, count(*) as total')
->get();
return $pengawas;
}
public function headings(): array
{
return [
'Nama',
'NIP/NPI/NIK',
'Status Kepegawaian',
'Nama Bank',
'Nomor Rekening',
'Total Mengawas'
];
}
public function columnFormats(): array
{
return [
'A' => NumberFormat::FORMAT_TEXT,
'B' => NumberFormat::FORMAT_NUMBER,
'C' => NumberFormat::FORMAT_TEXT,
'D' => NumberFormat::FORMAT_TEXT,
'E' => NumberFormat::FORMAT_NUMBER
];
}
}
这是我要导出的示例数据集
尝试为您需要显示完整数字的特定列添加“0”
public function columnFormats(): array
{
return [
// F is the column
'F' => '0'
];
}