Rumah >pembangunan bahagian belakang >masalah PHP >php bercelaru dalam excel di mana-mana

php bercelaru dalam excel di mana-mana

WBOY
WBOYasal
2023-05-07 12:43:08843semak imbas

PHP ialah bahasa skrip yang digunakan secara meluas dalam pembangunan web. Ia mempunyai fleksibiliti dan kebolehkendalian khas Namun, beberapa masalah biasa, seperti aksara bercelaru apabila mengeksport fail Excel, menyebabkan banyak masalah kepada pembangun. Jadi, dalam artikel ini, kami akan menyelidiki isu ini dan menyediakan beberapa penyelesaian yang akan membolehkan anda menyelesaikan isu yang menyusahkan ini dengan mudah.

  1. Fahami cara fail Excel dikodkan

Fail Excel disimpan dalam format binari, bukan teks seperti HTML atau JSON. Oleh itu, apabila membaca dan menulis fail Excel, anda perlu memberi perhatian khusus kepada cara ia dikodkan. Pengekodan yang paling biasa ialah UTF-8 dan GBK.

UTF-8 pada masa ini merupakan kaedah pengekodan yang paling biasa digunakan Ia menyokong pelbagai bahasa dan set aksara dan amat sesuai untuk aplikasi antarabangsa. GBK ialah kaedah pengekodan Cina yang set aksaranya hanya mengandungi aksara Cina Mudah dan Cina Tradisional.

  1. Tetapkan kaedah pengekodan fail PHP dan Excel

Apabila menggunakan PHP untuk mengeksport fail Excel, anda perlu memastikan bahawa kedua-dua fail skrip dan fail Excel menggunakan kaedah pengekodan yang sama. Anda boleh menggunakan fungsi terbina dalam PHP mb_convert_encoding() untuk menukar kandungan daripada satu pengekodan kepada yang lain.

Sebagai contoh, jika anda menggunakan pengekodan UTF-8 dalam PHP dan fail Excel anda menggunakan pengekodan GBK, anda boleh menukar kandungan kepada pengekodan GBK:

$data = "Kandungan Cina" ;
$data = mb_convert_encoding($data, "GBK", "UTF-8");

Anda juga boleh menggunakan kaedah setCellValueExplicit() dalam pustaka PHPExcel untuk menetapkan teks dalam sel Excel kepada Specified kaedah pengekodan:

$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', 'Chinese content', PHPExcel_Cell_DataType::TYPE_STRING,'GBK');

  • Apabila anda mengeluarkan fail Excel ke penyemak imbas, anda perlu menggunakan pengepala HTTP yang betul untuk menetapkan pengekodan. Anda boleh menambah yang berikut untuk memastikan penyemak imbas menggunakan pengekodan UTF-8:

    header('Content-Type: application/vnd.ms-excel; charset=utf-8');

    header(' Content-Disposition: attachment;filename="example.xls"');

    header('Cache-Control: max-age=0');

    Elakkan menggunakan aksara yang tidak disokong
    1. Menggunakan beberapa aksara khas, seperti emotikon atau aksara bukan konvensional, dalam fail Excel boleh menyebabkan aksara bercelaru. Oleh itu, berhati-hati harus diambil untuk mengelak daripada menggunakan aksara ini semasa membuat fail Excel.

    Menggunakan perpustakaan PHPExcel
    1. PHPExcel ialah perpustakaan PHP yang popular untuk membaca dan menulis fail Excel. Ia termasuk pelbagai kaedah membaca fail dan kaedah eksport dalam pelbagai format, termasuk PDF dan CSV, dsb. Selain itu, PHPExcel juga mempunyai penukaran pengekodan terbina dalam dan pengiraan automatik lebar lajur dan format sel, dsb., yang menjadikannya salah satu perpustakaan pilihan untuk memproses fail Excel.

    Sebagai contoh, untuk menulis data ke fail Excel dan mengeksportnya ke format XLS, anda boleh menggunakan kod berikut:

    require_once 'PHPExcel.php';

    $ objPHPExcel = PHPExcel();

    $objPHPExcel->setActiveSheetIndex(0);


    $objPHPExcel->getActiveSheet()->setCellValue('A1'); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Jantina');

    $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Umur');


    $objPHPExcel->getActiveSheet()->setCellValue('A2', '张三');
    $objPHPExcel->getActiveSheet()->setCellValue('B) ) ;

    $objPHPExcel->getActiveSheet()->setCellValue('C2', '20');


    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="example.xls"');

    header('Cache-Control: max-age=0');


    $objWriter = PHPExcel_IOFactory : :createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');

    Kesimpulan

    Apabila memproses fail Excel dalam PHP , kita perlu sentiasa mengingati pengekodan yang digunakan dan pastikan semuanya dikodkan dengan cara yang sama. Pada masa yang sama, penjagaan harus diambil untuk mengelakkan penggunaan aksara khas dan menggunakan fungsi perpustakaan yang sesuai untuk memproses fail Excel. Dengan mengikuti amalan terbaik ini, anda sepatutnya dapat menyelesaikan isu bercelaru Excel dengan mudah dan mencipta fail Excel yang cekap.

    Atas ialah kandungan terperinci php bercelaru dalam excel di mana-mana. 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