使用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';
答案 0 :(得分:3)
电子表格内容将保存在编码为UTF-8
的CSV文件中或者,您也可以告诉CSV Writer编写BOM表
$writer->setUseBOM(true);
但是由读取该文件的应用程序将其正确地视为UTF-8数据。像MS Excel这样的应用程序本身应该正确处理它,但像记事本这样的文本编辑器将无法识别UTF-8数据。
答案 1 :(得分:3)
<?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,代码结束时删除特殊字符