Bagaimana untuk menyelesaikan kod kacau Cina semasa memuat turun Excel dalam PHP

PHPz
Lepaskan: 2023-04-06 12:04:01
asal
1218 orang telah melayarinya

Semasa pembangunan, selalunya perlu menggunakan PHP untuk menjana fail Excel dan menyediakannya untuk dimuat turun oleh pengguna. Walau bagaimanapun, banyak kali kita akan menghadapi masalah, iaitu, aksara bercelaru muncul apabila mengeluarkan bahasa Cina. Di bawah ini kami akan memperkenalkan punca dan penyelesaian aksara Cina yang kacau.

1. Analisis sebab

Kejadian aksara Cina yang kacau adalah disebabkan oleh set aksara yang tidak konsisten bagi fail. Apabila kami mengeluarkan fail Excel yang dijana oleh PHP kepada penyemak imbas, kami perlu menentukan set aksara keluaran dan set aksara fail Excel mestilah konsisten dengan set aksara keluaran, jika tidak, aksara bercelaru akan muncul.

2. Penyelesaian

  1. Tetapan set aksara fail PHP

Dalam fail PHP, kita perlu menetapkan set aksara fail. Biasanya set aksara UTF-8 digunakan lebih banyak. Anda boleh menambah kod berikut pada kod PHP:

header("Content-Type:text/html;charset=utf-8");
Salin selepas log masuk
  1. Tetapan set aksara bagi fail Excel

Apabila menjana fail Excel, kita perlu menetapkan aksara set fail kepada Sama seperti set aksara output. Anda boleh menetapkan set aksara fail Excel dengan memanggil kaedah yang disediakan oleh perpustakaan PHPExcel Kod sampel adalah seperti berikut:

<?php
    require_once &#39;PHPExcel.php&#39;;

    //新建一个PHPExcel对象
    $objPHPExcel = new PHPExcel();

    //设置文件属性
    $objPHPExcel->getProperties()
        ->setCreator("Maarten Balliauw")
        ->setLastModifiedBy("Maarten Balliauw")
        ->setTitle("PHPExcel Test Document")
        ->setSubject("PHPExcel Test Document")
        ->setDescription("Test document for PHPExcel, generated using PHP classes.")
        ->setKeywords("office PHPExcel php")
        ->setCategory("Test result file");

    //设置当前的sheet
    $objPHPExcel->setActiveSheetIndex(0);

    //向Excel中写入数据
    $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');
    $objPHPExcel->getActiveSheet()->setCellValue('B1', 'World!');
    $objPHPExcel->getActiveSheet()->setCellValue('C1', '中文测试');

    //设置Excel的字符集
    $objPHPExcel->getActiveSheet()
        ->setTitle('PHPExcel Test Document')
        ->getComment('C1')
        ->setAuthor('PHPExcel')
        ->setText('Test document for PHPExcel, generated using PHP classes.')
        ->getText()->getFont()
        ->setColor(new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLUE))
        ->setBold(true)
        ->setSize(14)
        ->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);

    //设置Excel的输出格式
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="test.xls"');
    header('Cache-Control: max-age=0');

    //将Excel文件输出到浏览器
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
Salin selepas log masuk

Dalam kod di atas, kami menetapkan fail Excel dengan memanggil kaedah. disediakan oleh objek PHPExcel untuk menetapkan sifat fail, kemudian tetapkan helaian semasa sebagai yang pertama dengan memanggil kaedah setActiveSheetIndex yang disediakan oleh objek PHPExcel, dan tulis data ke Excel dengan memanggil kaedah setCellValue. Seterusnya, kami mendapatkan helaian semasa dengan memanggil kaedah getActiveSheet, kemudian memanggil kaedah setTitle untuk menetapkan Tajuk fail, dan dapatkan ulasan sel semasa dengan memanggil kaedah getComment, dan gunakan kaedah setText untuk menetapkan nilai atribut untuk Harta fon ulasan dan set set aksara Excel. Akhir sekali, fail Excel dikeluarkan kepada penyemak imbas dengan memanggil kaedah pengepala.

Perkara di atas ialah penyelesaian kepada masalah aksara bercelaru bahasa Cina apabila memuat turun fail Excel dengan PHP Dengan menetapkan set aksara fail, kesan aksara bercelaru boleh dielakkan.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kod kacau Cina semasa memuat turun Excel dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan