Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menanyakan format masa sistem excel dalam php

Bagaimana untuk menanyakan format masa sistem excel dalam php

PHPz
PHPzasal
2023-04-21 09:07:08901semak imbas

Baru-baru ini, saya menghadapi masalah yang menyusahkan saya sejak sekian lama Apabila menggunakan PHP untuk menanyakan jadual Excel, format masa sistem akan menjadi salah. Ini adalah masalah yang sangat biasa, tetapi ia boleh menyusahkan untuk diselesaikan. Selepas banyak penyeksaan akhirnya saya temui penyelesaiannya. Dalam artikel ini, saya akan berkongsi dengan anda pengalaman dan penyelesaian saya.

Pertama, mari kita lihat manifestasi khusus masalah ini. Apabila menggunakan PHP untuk menanyakan jadual Excel, ralat format masa sistem sering berlaku. Ini biasanya kerana tarikh dan masa dalam jadual Excel disimpan dalam format teks dan bukannya format masa. Apabila kami menggunakan PHP untuk membaca tarikh dan masa ini, sistem menghuraikannya ke dalam rentetan dan bukannya format masa. Ini membawa kepada masalah seperti tidak dapat mengira dengan betul perbezaan masa antara tarikh semasa melakukan analisis dan pemprosesan data.

Terdapat banyak cara untuk menyelesaikan masalah ini, tetapi cara paling mudah dan berkesan ialah menggunakan perpustakaan PHPExcel. PHPExcel ialah perpustakaan PHP percuma yang boleh digunakan untuk membaca dan menulis fail Excel. Ia mempunyai ciri yang sangat berkuasa, mampu mengendalikan pelbagai format Excel, dan mampu menghuraikan format tarikh dan masa dengan betul.

Berikut ialah contoh kod asas menggunakan perpustakaan PHPExcel untuk membaca jadual Excel dan menghuraikan format tarikh dan masa:

require_once 'PHPExcel.php';

$reader = PHPExcel_IOFactory::createReader('Excel2007');

$reader->setReadDataOnly(true);

$excel = PHPExcel_IOFactory::load('test.xlsx');

$worksheet = $excel->getActiveSheet();

foreach ($worksheet->getRowIterator() as $row) {

    foreach ($row->getCellIterator() as $cell) {

        if ($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_NUMERIC && PHPExcel_Shared_Date::isDateTime($cell)) {

            $value = $cell->getFormattedValue();

            $date = date('Y-m-d H:i:s', PHPExcel_Shared_Date::ExcelToPHP($value));

            echo $date;

        } else {

            echo $cell->getValue();

        }

        echo " ";

    }

    echo "\n";

}

Kod ini menggunakan PHPExcel_IOFactory, PHPExcel_Shared_Date dan PHPExcel_Cell_DataType daripada PHPExcel perpustakaan Kelas untuk membaca data daripada jadual Excel. Pertama, kami menggunakan kaedah createReader() dalam kelas PHPExcel_IOFactory untuk mencipta pembaca Excel. Kemudian, kami menetapkan kaedah setReadDataOnly() pembaca kepada benar untuk membaca hanya data dalam jadual Excel tanpa membaca format. Seterusnya, kami menggunakan kaedah load() untuk memuatkan jadual Excel. Akhir sekali, kami menggunakan kaedah getRowIterator() dan getCellIterator() untuk lelaran melalui baris dan lajur dalam jadual Excel. Jika jenis data sel ialah nombor dan ia dalam format tarikh dan masa maka gunakan kaedah isDateTime() dalam kelas PHPExcel_Shared_Date untuk mengesahkannya. Jika pengesahan lulus, gunakan kaedah getFormattedValue() dan ExcelToPHP() untuk menghuraikan format tarikh dan masa ke dalam format tarikh dan masa standard dalam PHP.

Kunci kepada kod ini ialah menggunakan kelas PHPExcel_Shared_Date untuk menghuraikan format tarikh dan masa dalam Excel. PHPExcel_Shared_Date ialah kelas khas dalam pustaka PHPExcel yang menyediakan beberapa kaedah untuk membantu kami menghuraikan format tarikh dan masa dengan betul, termasuk kaedah ExcelToPHP() dan PHPToExcel(). Kaedah ExcelToPHP() menukar format tarikh dan masa dalam Excel kepada format tarikh dan masa standard dalam PHP, manakala kaedah PHPToExcel() menukar format tarikh dan masa dalam PHP kepada format tarikh dan masa dalam Excel. Kaedah ini sangat berguna dan penting apabila berurusan dengan tarikh dan masa dalam jadual Excel.

Untuk meringkaskan, apabila menggunakan PHP untuk menanyakan jadual Excel, ralat format masa sistem sering berlaku. Cara paling mudah dan paling berkesan untuk menyelesaikan masalah ini ialah menggunakan perpustakaan PHPExcel. Menggunakan perpustakaan PHPExcel, kami boleh menghuraikan format tarikh dan masa dengan betul dalam jadual Excel dan menukarnya kepada format tarikh dan masa standard dalam PHP. Dengan cara ini, kita boleh mengira dengan betul perbezaan masa antara tarikh dan melaksanakan analisis dan pemprosesan data. Harap artikel ini dapat membantu anda menyelesaikan masalah yang sama.

Atas ialah kandungan terperinci Bagaimana untuk menanyakan format masa sistem excel dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn