PHPExcel 将 XLS 转换为具有特殊字符的 CSV

PHPExcel convert XLS to CSV with special characters

我在使用 PHPExcel 类.

将包含特殊字符的 XLS 文件转换为 CSV 文件时遇到了一个小问题

例如名称 "Kévin" 在 CSV 生成的文件中给出 "Kévin"。

这是我当前使用 PHPExcel 的 PHP 代码:

$excel_readers = array(
        'Excel5' , 
        'Excel2003XML' , 
        'Excel2007'
        );

        require_once('classes/PHPExcel.php');

        $reader = PHPExcel_IOFactory::createReader('Excel5');
        $reader->setReadDataOnly(true);

        $path = $_FILES['file']['tmp_name'];
        $excel = $reader->load($path);

        $writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
        $writer->save('temp/absences.csv');

        echo 'File saved to csv format';

电子表格内容将保存在编码为 UTF-8 的 CSV 文件中

您可以选择让 CSV 编写器也编写 BOM

$writer->setUseBOM(true);

但这取决于读取该文件的应用程序是否将其正确视为 UTF-8 数据。 MS Excel 等应用程序本身应该可以正确处理它,但记事本等文本编辑器无法识别 UTF-8 数据。

<?php

/**
    Convert excel file to csv
*/

//Various excel formats supported by PHPExcel library
$excel_readers = array(
    'Excel5' , 
    'Excel2003XML' , 
    'Excel2007'
);

require_once('PHPExcel180/Classes/PHPExcel.php');
require_once('PHPExcel180/Classes/PHPExcel/Writer/CSV.php');

$reader = PHPExcel_IOFactory::createReader('Excel5');
$reader->setReadDataOnly(false);

$path = 'file.xls';
$excel = $reader->load($path);

$writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
$writer->setUseBOM(true);
$writer->save('data.csv');

echo 'File saved to csv format';
?>

PHPExcel_1.8.0_doc 库使用代码

从一个 xls 转换为 csv 时删除特殊字符,代码结束