PHP读取Excel文件数据—phpExcelReader

今天遇到一个新的需求,需要读取Excel里面的数据,然后保存到数据库里面。

我本来是打算用Java来写的,但是嫌Java麻烦,所以就找了下怎么使用PHP来读取Excel里面的数据。

我google了一下,找到phpExcelReader时一个可用去读Excel文件内容的一个PHP类。

下载地址:http://sourceforge.net/projects/phpexcelreader/

文件名:phpExcelReader.zip

包含两个必需文件:reader.php     oleread.inc

首先,包含reader.php文件:require_once “reader.php”;

在这之前需要把reader.php这个文件里面require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;改成require_once ‘reader.php’;

然后再把line:261   $this->_ole =& new OLERead();  改成  $this->_ole = new OLERead();

如果在使用中遇到:Allowed memory size of 25165824 bytes exhausted (tried to allocate 24 bytes)这样的错误的话。找到php.ini配置文件把memory_limit的值改大一些就可以了。

下面给出一个案例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
require_once "Excel/reader.php";
 
// Excel文件($filename, $encoding);
$xl_reader= new Spreadsheet_Excel_Reader ( );
 
// 设置输入编码 UTF-8/GB2312/CP936等等
$xl_reader->setOutputEncoding('UTF-8');
 
/***
* 如果服务器不支持 iconv 添加下面的代码使用 mb_convert_encoding 编码
* $data->setUTFEncoder('mb');
*
**/

 
/***
* 默认情况下行和列的技术从1开始
* 如果要修改起始数值,添加:
* $xl_reader->setRowColOffset(0);
*
**/

 
 
/***
*  设置工作模式
* $xl_reader->setDefaultFormat('%.2f');
* setDefaultFormat - 最大兼容模式
*
* $xl_reader->setColumnFormat(4, '%.3f');
* setColumnFormat - 列的格式设置(仅适用于数字字段)
*
**/

 
$xl_reader->read('jxlrwtest.xls');
 
/*
 
 
 $xl_reader->sheets[0]['numRows'] - 行数
 $xl_reader->sheets[0]['numCols'] - 列数
 $xl_reader->sheets[0]['cells'][$i][$j] - 行$i 列$j里的数据
 
 $xl_reader->sheets[0]['cellsInfo'][$i][$j] - 文件的拓展信息
 
    $xl_reader->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"
        当type为unknown时使用raw值,因为元素中包含'0.00'的格式。
    $xl_reader->sheets[0]['cellsInfo'][$i][$j]['raw'] = 未被格式化的值
    $xl_reader->sheets[0]['cellsInfo'][$i][$j]['colspan']
    $xl_reader->sheets[0]['cellsInfo'][$i][$j]['rowspan']
*/

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

 

除非注明,饮水思源博客文章均为原创,转载请以链接形式标明本文地址

本文地址:http://www.alonemonkey.com/phpexcelreader.html

本文链接:http://www.alonemonkey.com/phpexcelreader.html