PHP读取.xls类型的Excel数据

    上传Excel文件并导入表格中的数据是信息系统中比较常用的一个功能。发现一个开源项目PHPExcelReader可以解决这个这个问题,来记录一笔。

    项目网址:http://sourceforge.net/projects/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会引起导致中文字符编码异常。该函数增加了字符集参数后亦无效,如有同学知道如何处理,请告知。

    修改后的源码可点击 PHPExcelReader源码 下载



    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自枫芸志,原文地址《PHP读取.xls类型的Excel数据
    标签:
    分享:

已经有5 条评论抢在你前面了~

  1. 沙发
    mary 2013年5月10日 下午1:14

    phpExcelReader 报错: The filename uploadFile.xlsx is not readable???我的exl不是中文名称,该文件也有读写权限 不知道还会报这个错误

    [回复]

    晴枫

    晴枫 回复:

    @mary, 检查.xls文件路径是否正确,特别是用相对路径的话;检查该文件是否被Excel打开无法被PHP读取;检查Apache是否有该文件的读取权限

    [回复]

  2. 板凳
    lmj 2011年4月19日 上午10:57

    htmlentities函数加上中文字符参数就可以,htmlentities($data->sheets[$sheet][‘cells’][$row][$col],ENT_COMPAT ,GB2312)。

    [回复]

    晴枫

    晴枫 回复:

    @lmj, 似乎最新的代码不用更新修改编码集也正常了。。。

    [回复]

无觅相关文章插件,快速提升流量