上传Excel文件并导入表格中的数据是信息系统中比较常用的一个功能。发现一个开源项目PHPExcelReader可以解决这个这个问题,来记录一笔。
但其中的代码需要做一些修改才能适用于中文环境,罗列如下:
1、修改文件引用路径;在reader.php中,修改require_once 'Spreadsheet/Excel/Reader/OLERead.php';
为
require_once ( dirname(__FILE__) .'/OLERead.inc' );
2、修改输出字符集;在example.php和example2.php中,修改
$data->setOutputEncoding('CP1251');
为
$data->setOutputEncoding('GB2312');
3、修改测试文件名;在example.php中,修改
$data->read('jxlrwtest.xls');
为
$data->read('test.xls');
在example2.php中,修改
$file_to_include = "tjxlrwtestest.xls";
为
$file_to_include = "test.xls";
注:原来的测试文件jxlrwtest.xls是坏的,无法使用。test.xls为新的测试文件名,具体使用改为自己的文件即可。
4、修改编码函数;在example2.php中,修改
$table_output[$sheet] .= nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));
为
$table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));
注:htmlentities会引起导致中文字符编码异常。该函数增加了字符集参数后亦无效,如有同学知道如何处理,请告知。
修改后的源码可点击 [download id="10" format="3"] 下载
本博客所有文章如无特别注明均为原创。