Dengan perkembangan Internet, pemprosesan data telah menjadi bahagian penting dalam kerja dan kehidupan harian kami. Sebagai bahasa pembangunan yang cekap, fleksibel, mudah dipelajari dan digunakan, bahasa PHP telah menjadi bahasa pilihan untuk banyak tapak web dan aplikasi, termasuk aplikasi berkaitan pemprosesan data. Dalam PHP, pemprosesan fail Excel juga merupakan fungsi yang sangat penting Dengan menggunakan beberapa perpustakaan PHP sumber terbuka, kita boleh membaca dan menulis fail Excel dengan mudah. Walau bagaimanapun, apabila menggunakan PHP untuk membaca dan menulis fail Excel, anda mungkin menghadapi beberapa masalah kod yang bercelaru, yang biasa berlaku untuk fail yang perlu diproses dalam berbilang bahasa. Artikel ini akan membincangkan beberapa penyelesaian kepada masalah ini.
Sebelum menyelesaikan masalah fail Excel yang bercelaru, kita perlu memahami kaedah pengekodan fail Excel terlebih dahulu. Terdapat banyak kaedah pengekodan untuk fail Excel, kaedah pengekodan yang paling biasa digunakan ialah UTF-8 dan GBK. Jika kaedah pengekodan tidak dapat dikenali dengan betul semasa membaca fail Excel, aksara bercelaru akan berlaku.
Secara amnya, kami boleh menggunakan beberapa alatan untuk melihat kaedah pengekodan fail Excel. Kaedah pengekodan fail Excel lalai di bawah Windows ialah GBK, manakala kaedah pengekodan fail Excel di bawah Mac OS ialah UTF-8. Sudah tentu, jika kami tidak dapat menentukan kaedah pengekodan fail Excel, kami juga boleh menggunakan program untuk mengesan dan menukar kaedah pengekodan fail Excel secara automatik.
phptableexcel ialah perpustakaan PHP yang berkuasa yang boleh membantu kami membaca dan menulis fail Excel. Walau bagaimanapun, apabila menggunakan phptableexcel untuk membaca fail Excel, jika fail tersebut mengandungi teks dalam berbilang bahasa, aksara bercelaru mungkin muncul. Pada masa ini, kita boleh menyelesaikannya melalui kaedah berikut.
2.1. Ubah suai kod sumber phptableexcel
Kami boleh terus mengubah suai kod sumber phptableexcel untuk menyelesaikan masalah yang bercelaru. Kaedah khusus ialah membuka fail "TableExcel.php", cari fungsi "_parse_excel_data", dan tukar "array_push($coldata,$rs);" dalam fungsi kepada "array_push ($coldata,iconv('gbk'," 'utf- 8',$rs));" sudah memadai.
Walaupun kaedah ini agak mudah, ia memerlukan kami mengubah suai kod sumber Jika kami mengubah suai ralat secara tidak sengaja, ia akan menjejaskan penggunaan di tempat lain.
2.2. Gunakan PHPExcel dan bukannya phptableexcel
PHPExcel ialah perpustakaan PHP berkuasa yang boleh membaca dan menulis fail Excel dan boleh menyokong berbilang bahasa, termasuk bahasa Cina. Apabila menggunakan PHPExcel untuk membaca fail Excel, anda boleh mengelakkan aksara bercelaru dengan menetapkan kaedah pengekodan.
Kaedah khusus adalah seperti berikut:
require_once 'PHPExcel/PHPExcel/IOFactory.php'; $objReader = PHPExcel_IOFactory::createReader('Excel5'); $objReader->setReadDataOnly(true); $objReader->setReadEncoding('GBK'); $objPHPExcel = $objReader->load('example.xls');
Di sini kita mula-mula mencipta objek pembaca Excel melalui fungsi PHPExcel_IOFactory::createReader() dan kemudian tetapkan data baca kepada data sahaja , tidak disertakan Format dan gaya, dan akhirnya tetapkan kaedah pengekodan fail Excel kepada GBK, supaya kita boleh membaca kandungan Cina secara normal.
Apabila membaca fail Excel dalam PHP, aksara bercelaru adalah masalah biasa. Jika kita ingin mengelakkan masalah ini, kita perlu memahami kaedah pengekodan fail Excel dan menetapkan kaedah pengekodan yang betul semasa membaca. Untuk perpustakaan phptableexcel, kita boleh mengubah suai kod sumber atau menggunakan perpustakaan lain untuk menyelesaikan masalah bercelaru. Untuk perpustakaan PHPExcel, kami hanya perlu menetapkan kaedah pengekodan yang betul. Pendek kata, walaupun masalah kod bercelaru agak menyusahkan, ia boleh diselesaikan dengan mudah selagi anda menguasai penyelesaiannya.
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika phptableexcel bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!