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.
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.
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');
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header(' Content-Disposition: attachment;filename="example.xls"');header('Cache-Control: max-age=0');
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('A2', '张三');
$objPHPExcel->getActiveSheet()->setCellValue('B) ) ;
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="example.xls"');
$objWriter = PHPExcel_IOFactory : :createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
Kesimpulan
Atas ialah kandungan terperinci php bercelaru dalam excel di mana-mana. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!