(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
来源:互联网 发布:那英刀郎事件知乎 编辑:程序博客网 时间:2024/06/06 17:49
第一步:下载 thinkphp_3.2.3 和 PHPExcel_1.8.0 并解压
对应的网站分别为:
http://www.thinkphp.cn/down.html
https://github.com/PHPOffice/PHPExcel
第二步:
①将解压出来的ThinkPHP文件拷贝到网站根目录
②并创建index.php 代码如下
第三步:
①在ThinkPHP\Library\Vendor目录下新建文件夹PHPExcel
②将PHPExcel_1.8.0_doc\Classes中的文件拷贝到ThinkPHP\Library\Vendor\
PHPExcel中
PHPExcel中
第四步:
①运行根目录的index.php文件,并手动创建Public文件夹
ThinkPHP欢迎界面:
根目录结构:
②Application目录如下:
第五步:ThinkPHP连接我们的mysql数据库
文件位置 : 根目录/Application/Home/Conf/config.php
第六步:在“Application\Home\View”视图文件夹中 创建一个文件夹"Index" (注意大小写),并在该文件夹中创建一个index.html的文件
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="{:U('upload')}" enctype="multipart/form-data" method="post">
<input type="file"name="photo" />
<input type="submit"value="导入数据">
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="{:U('upload')}" enctype="multipart/form-data" method="post">
<input type="file"name="photo" />
<input type="submit"value="导入数据">
</body>
</html>
第七步:修改Application\Home\Controller目录下的IndexController.class.php文件
代码如下:
<?php
namespace Home\Controller;
use Think\Controller;
use PHPExcel_IOFactory;
use PHPExcel;
use Behavior;
class IndexController extends Controller {
public function index(){
$this->display();
}
public function upload() {
ini_set('memory_limit','1024M');
if (!empty($_FILES)) {
$config = array(
'exts' => array('xlsx','xls'),
'maxSize' => 3145728000,
'rootPath' =>"./Public/",
'savePath' => 'Uploads/',
'subName' => array('date','Ymd'),
);
$upload = new \Think\Upload($config);
if (!$info = $upload->upload()) {
$this->error($upload->getError());
}
vendor("PHPExcel.PHPExcel");
$file_name=$upload->rootPath.$info['photo']['savepath'].$info['photo']['savename'];
$extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));//判断导入表格后缀格式
if ($extension == 'xlsx') {
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
} else if ($extension == 'xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
}
$sheet =$objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();//取得总行数
$highestColumn =$sheet->getHighestColumn(); //取得总列数
D('pro_info')->execute('truncate table pro_info');
for ($i = 2; $i <= $highestRow; $i++) {
//看这里看这里,前面小写的a是表中的字段名,后面的大写A是excel中位置
$data['pId'] =$objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();
$data['pName'] =$objPHPExcel->getActiveSheet()->getCell("B" .$i)->getValue();
$data['pPrice'] =$objPHPExcel->getActiveSheet()->getCell("C" .$i)->getValue();
$data['pCount'] = $objPHPExcel->getActiveSheet()->getCell("D". $i)->getValue();
//看这里看这里,这个位置写数据库中的表名
D('pro_info')->add($data);
}
$this->success('导入成功!');
} else {
$this->error("请选择上传的文件");
}
}
}
namespace Home\Controller;
use Think\Controller;
use PHPExcel_IOFactory;
use PHPExcel;
use Behavior;
class IndexController extends Controller {
public function index(){
$this->display();
}
public function upload() {
ini_set('memory_limit','1024M');
if (!empty($_FILES)) {
$config = array(
'exts' => array('xlsx','xls'),
'maxSize' => 3145728000,
'rootPath' =>"./Public/",
'savePath' => 'Uploads/',
'subName' => array('date','Ymd'),
);
$upload = new \Think\Upload($config);
if (!$info = $upload->upload()) {
$this->error($upload->getError());
}
vendor("PHPExcel.PHPExcel");
$file_name=$upload->rootPath.$info['photo']['savepath'].$info['photo']['savename'];
$extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));//判断导入表格后缀格式
if ($extension == 'xlsx') {
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
} else if ($extension == 'xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
}
$sheet =$objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();//取得总行数
$highestColumn =$sheet->getHighestColumn(); //取得总列数
D('pro_info')->execute('truncate table pro_info');
for ($i = 2; $i <= $highestRow; $i++) {
//看这里看这里,前面小写的a是表中的字段名,后面的大写A是excel中位置
$data['pId'] =$objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();
$data['pName'] =$objPHPExcel->getActiveSheet()->getCell("B" .$i)->getValue();
$data['pPrice'] =$objPHPExcel->getActiveSheet()->getCell("C" .$i)->getValue();
$data['pCount'] = $objPHPExcel->getActiveSheet()->getCell("D". $i)->getValue();
//看这里看这里,这个位置写数据库中的表名
D('pro_info')->add($data);
}
$this->success('导入成功!');
} else {
$this->error("请选择上传的文件");
}
}
}
第八步:运行ThinkPHP,导入excel文件
excel文件内容(根据数据库来):
数据库结构:
最后----大功告成!!
##如果本文章帮助到你,请至WDSS留言一条(内容不限),万分感谢!!
##交流请联系QQ:570557916
阅读全文
3 0
- (超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
- 利用PHPExcel将数据库数据导入excel表格的方法
- thinkphp3.2 运用phpexcel将excel文件导入mysql数据库
- 使用PHPExcel实现数据批量导入到数据库
- 利用PHPExcel实现数据的导入导出
- 利用POI实现将Excel表格中的数据批量导入数据库中
- PHPExcel导入excel数据到数据库中
- 用phpExcel导入数据到mysql数据库
- PHPExcel自动导入数据到数据库
- Thinkphp PHPExcel批量导入数据到数据库
- thinkphp利用phpexcel导入到Excel表格中
- phpexcel实现导入内容到数据库中
- phpexcel导入数据库 基于thinkphp3.2
- 将Excel表格中的数据导入到数据库
- ThinkPHP3.1.3使用phpExcel1.8.0实现数据从Excel表格导入mysql数据库
- 利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
- 利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
- 利用phpExcel实现Excel数据的导入导出(全步骤详细解析)(转载粘贴的)
- yii2behavior用法
- storm-架构
- JVM高级特性与实践(十一):方法调用 与 字节码解释执行引擎(实例解析)
- 数据库 MySQL安装图解
- C语言中string函数详解
- (超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
- Linux 下第一次使用MySQL遇到几种问题。
- (5)Centos6.X安装FastDFS(伪分布)
- 2017福建省赛FZU2282 Wand
- Hdu 5094 Maze【状压搜索】
- CPUID Using printf
- 3.配置SVN客户端
- 读取项目中配置文件的方式
- MySQL索引类型和优缺点