有时候如果有大量的数据需要导入到数据库,最低级的办法就是,1个1个的手动添加,而平常生活中,常经常使用表格来记录,能不能让PHP直接读取1个excel表格,然后,将表格中的内容,全部导入数据库呢,这模样,可以节省大量的时间。
php-excel-reader是1个读取excel的类,可以很轻松的使用它读取excel文件。
首先要下载有关的文件:
链接:http://pan.baidu.com/s/1i5990hv 密码:4npd
其余文件为事例文件,请认真分析源码。
表格对应内容:
1:引入类,创建对象,设置读取文件的目录
<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once 'excel_reader2.php';
$data = new Spreadsheet_Excel_Reader();//创建对象
$data->setOutputEncoding('UTF⑻');//设置编码格式
$data->read("example.xls");//读取excel文档
2:读取终了后,会将表格有关的信息,全部存到1个大数组中。
<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once 'excel_reader2.php';
$data = new Spreadsheet_Excel_Reader();//创建对象
$data->setOutputEncoding('UTF⑻');//设置编码格式
$data->read("example.xls");//读取excel文档
echo "<pre>";
print_r($data->sheets);
echo "</pre>";
运行结果以下
3:如果要读取,数组中的详细内容,给出几个例子
<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once 'excel_reader2.php';
$data = new Spreadsheet_Excel_Reader();//创建对象
$data->setOutputEncoding('UTF⑻');//设置编码格式
$data->read("example.xls");//读取excel文档
//echo "<pre>";
//print_r($data->sheets);
//echo "</pre>";
echo $data->sheets[0]['numRows']."行<br>";//读出1共几行
echo $data->sheets[0]['numCols']."列<br>";//读出1共几列
echo $data->sheets[0]['cells'][1][1]."<br>";//读出第1行第1列的内容
print_r($data->sheets[0]['cells'][1]);//第1行的数据
echo "<br>";
echo implode(",",$data->sheets[0]['cells'][1])."<br>";//去除第1行的数据,每一个中间添加分隔符
for($i=1;$i<=$data->sheets[0]['numCols'];$i++)//1次读出第1行的所有数据
{
echo $data->sheets[0]['cells'][1][$i]." ";
}
echo "<br>";
echo "<br>";
//读出所有数据
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
//$data->sheets[0]['numCols']为Excel列数
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
//显示每一个单元格内容
echo $data->sheets[0]['cells'][$i][$j].' ';
}
echo '<br>';
}
注意上述,echo implode(",",$data->sheets[0]['cells'][1])."<br>";//去除第1行的数据,每一个中间添加分隔符,,的利用,这样就能够,直接向数据库插入1整行的数据了
注:
dump(),它可以将excel内容以html格式输出:
echo $data->dump(true,true);
<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once 'excel_reader2.php';
$data = new Spreadsheet_Excel_Reader("example.xls");
?>
<html>
<head>
<style>
table.excel {
border-style:ridge;
border-width:1;
border-collapse:collapse;
font-family:sans-serif;
font-size:12px;
}
table.excel thead th, table.excel tbody th {
background:#CCCCCC;
border-style:ridge;
border-width:1;
text-align: center;
vertical-align:bottom;
}
table.excel tbody th {
text-align:center;
width:20px;
}
table.excel tbody td {
vertical-align:bottom;
}
table.excel tbody td {
padding: 0 3px;
border: 1px solid #EEEEEE;
}
</style>
</head>
<body>
<?php echo $data->dump(true,true); ?>
</body>
</html>