日期:2014-05-17  浏览次数:20404 次

小妹请教phpExcelReader读取中文excel文件出错问题
我有一个php文件,用户选择xls文件的。

readExcel.php
PHP code

<?php
require_once 'Excel/reader.php';

$file_name=$_REQUEST['file1'];

if($file_name!="")
{
    $data = new Spreadsheet_Excel_Reader();
    $data->setOutputEncoding('UTF-8');
    $data->read(iconv("UTF-8","GB2312",$file_name));

    error_reporting(E_ALL ^ E_NOTICE);

    for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
        for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
            echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
        }
        echo "\n";

    }
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>读取Excel</title>
</head>
<body>

<form action="readExcel.php" method="post">
<label for="file">Filename:</label>
<input type="file" name="file1" id="file1" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>


我的phpExcelReader是从
http://cdnetworks-kr-2.dl.sourceforge.net/project/phpexcelreader/Spreadsheet_Excel_Reader/Interim%20update/phpExcelReader.zip

下载的。
就改了reader.php里require_once 'oleread.inc';
这一个地方。

我写的这个php页面读取非中文的Excel文件不报错,并且可以读取。

如果读取中文名称的Excel文件就报错。
The filename XXX.xls is not readable

例如我在D盘根目录有两个Excel文件,一个叫abc.xls,一个叫 测试.xls

两个xls里的内容都是完全一致的。

读取abc.xls就正常。

读取测试.xls就报
The filename 测试.xls is not readable

请用过phpExcelReader 帮我解释一下,如何修改。

------解决方案--------------------
iconv("UTF-8","gb2312",$file_name)

这样转换试试

------解决方案--------------------
echo iconv("UTF-8","gb2312",$file_name);
得到什么

------解决方案--------------------
探讨

得到结果如下:
测试.xls
The filename 测试.xls is not readable

------解决方案--------------------
一般都不支持中文路径
------解决方案--------------------
参考:http://witmax.cn/php-read-excel.html