Laravel Excel-数量值自动更改

发布于 2025-02-03 05:09:47 字数 2064 浏览 5 评论 0原文

因此,我有一些数据将其保存为数据库中的VARCHAR,数据EX: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
        ];
    }
}

这是我要导出的示例数据集

”在此处输入图像说明”

So I have some data i saved it as Varchar on database, data ex:3578012605010001 and when I export the data to excel, it'll change to 3,57801E+15, then I tried to change it as Number, the result is 3578012605010000 i think it's works. But then i realize that it didn't, it change the last number from 1 to 0, that is not the exact data from the database. I wanted a result that export an exact data like 3578012605010001.

Anw, this is my code to export from query to excel, im using Laravel Excel package.

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
        ];
    }
}

And here are my example datasets that i want to export

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨落成白 2025-02-10 05:09:47

尝试此添加“ 0”以获取特定列您需要显示完整号码

public function columnFormats(): array
    {
        return [
            // F is the column
            'F' => '0'
        ];
    }

try this add '0' for specific columns you need to display the full number

public function columnFormats(): array
    {
        return [
            // F is the column
            'F' => '0'
        ];
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文