在网站建□□设过程中,时不时就□□□□会遇到需□□□要增加大□□□□量数据的□□□□情况,比如说产□□□□品数据,会员数据□□□之类的,从其他站□□点搬迁到◉新的网站□□□上,如果手动☆一条一条◣的去增加,那无疑是◤会浪费大□□□量的时间□□和精力;而且数据◤表结构设□□计在不相□□□同的情况□□□□下,也不能完□□全的直接□□□□导入原来□□的数据表,所以这种※情况下,可以把原□□□□来的数据▼表导出为Excel文档,然后再通□□□过导入Excel文档到数□□据库,这样一来□□□就节省了○人力物力□□以及大量◆的时间,而且也保□□□证了数据□□□□不会丢失。
大概的页●面是这样✦的,这里是设□□置一个Excel文档模板※给后台管□□□理人员参◇考,以免Excel文档结果□□□不对,导致导入□□□□数据出错;
Excel文档的结构是这样的,下面做功能程序的时候需要用到;

这里的ABCDE就是对应Excel文档的列◎名称,左边对应•的就是数◇据表名称,这里根据●个人情况□□□□设置即可;
下面直接贴出代码:
table_excel方法:
public function table_excel(){
if (IS_POST){
ini_set('memory_limit', '256M');//程序运行内存
$file_url=I('post.file_url','');
if($file_url==''){;
$this->error('请先上传文件');
}
$file_url=str_replace('/Uploads','Uploads',$file_url);//去掉第一个斜线,因为取词excel只能用相对路径。
$array=excelImport($file_url,1,'E');
//从第一行开始,E列结束,需要修改excelImport($filename, $begin) 为 excelImport($filename, $begin,$allColumn); 去掉 $allColumn = $currentSheet->getHighestColumn();输出$array就知道怎么导入了
// var_dump($array);exit();
$ModelObj = D('Member');
if(!count($array)){
$this->error('上传的文件不正确');
}
$lists=array();
$this->status=1;
$num=0;
foreach($array as $key => $var){
$data['title'] = $var['A'];
$data['number'] = $var['B'];
$data['courses'] = $var['C'];
$data['place'] =$var['D'];
$data['time'] = $var['E'];
$data['order_id'] = 100;
$data['is_show'] = 1;
$flag = $ModelObj->data($data)->add();
if($flag>0){
$num++;
}
}
unset($data);
unset($var['A']);
unset($var['B']);
unset($var['C']);
unset($var['D']);
unset($var['E']);
$this->success('成功导入'.$num.'条信息');
}
$this->display();
}
excelImport方法:
/**
* 读取Excel文件
*/
function excelImport($filename, $begin,$allColumn) {
Vendor('PHPExcel.PHPExcel');
//建立reader对象
$PHPReader = new PHPExcel_Reader_Excel2007();
if (!$PHPReader->canRead($filename)) {
$PHPReader = new PHPExcel_Reader_Excel5();
if (!$PHPReader->canRead($filename)) {
return array();
}
}
//建立excel对象,此时你即□□□可以通过excel对象读取□□文件,也可以通□□□□过它写入□□文件
$PHPExcel = $PHPReader->load($filename);
/* * 读取excel文件中的第一个工作表 */
$currentSheet = $PHPExcel->getSheet(0);
/* * 取得最大的列号 */
// $allColumn = $currentSheet->getHighestColumn();
/* * 取得一共有多少行 */
$allRow = $currentSheet->getHighestRow();
$returnCell = '';
//循环读取每个单元格的内容。注意行从1开始,列从A开始
for ($rowIndex = $begin; $rowIndex <= $allRow; $rowIndex++) {
for ($colIndex = 'A'; $colIndex <= $allColumn; $colIndex++) {
$addr = $colIndex . $rowIndex;
$cell = $currentSheet->getCell($addr)->getValue();
if ($cell instanceof PHPExcel_RichText) {
//富文本转换字符串
$returnCell[$rowIndex][$colIndex] = $cell->__toString();
} else {
$returnCell[$rowIndex][$colIndex] = $cell;
}
}
}
return $returnCell;
}
PHP是一门专□□□□门开发网□□站的语言,非常好用,而且还是□□□□开源免费□□的,配合开源◤数据库MYSQL,基本天衣□□无缝。