(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库

(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库

请先阅读以下步骤再到结尾下载源码

 

第一步:下载 thinkphp_3.2.3 和 PHPExcel_1.8.0 并解压

对应的网站分别为:
http://www.thinkphp.cn/down.html
https://github.com/PHPOffice/PHPExcel
 

第二步:  

        ①将解压出来的ThinkPHP文件拷贝到网站根目录
②并创建index.php 代码如下
 
(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
 

第三步:

①在ThinkPHP\Library\Vendor目录下新建文件夹PHPExcel
②将PHPExcel_1.8.0_doc\Classes中的文件拷贝到ThinkPHP\Library\Vendor\
PHPExcel中
 
(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
 

第四步:

①运行根目录的index.php文件,并手动创建Public文件夹

ThinkPHP欢迎界面:

(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
根目录结构:
 
(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
②Application目录如下:
 
(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
 

第五步:ThinkPHP连接我们的mysql数据

 
文件位置 : 根目录/Application/Home/Conf/config.php
 
(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
 

第六步:在“Application\Home\View”视图文件夹中  创建一个文件夹”Index” (注意大小写),并在该文件夹中创建一个index.html的文件

(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
代码:
 
 <!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>
 

第七步:修改Application\Home\Controller目录下的IndexController.class.php文件

(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
 
 
(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
 
(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
 
代码如下:
<?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(“请选择上传的文件”);
}
}
}

 

第八步:运行ThinkPHP,导入excel文件

(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库   
excel文件内容(根据数据库来):
(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
数据库结构:(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
 

最后—-大功告成!!

(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库(超级详细版)利用ThinkPHP3.2.3+PHPExcel实现将表格数据导入到数据库
 

##源码下载地址

https://blog.csdn.net/yssong1028/article/details/75913317

 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/113274.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 面试题:深拷贝和浅拷贝(超级详细,有内存图)

    面试题:深拷贝和浅拷贝(超级详细,有内存图)这篇文章竟然写了一上午,亲,请怀着感恩的心阅读!!深拷贝和浅拷贝是经常在面试中会出现的,主要考察你对基本类型和引用类型的理解深度。我在无数次的面试中,应聘者还没有一个人能把这个问题回答情况,包括很多机构的培训老师。这篇文章会让你把基本类型和引用类型的区别搞得清清楚楚,搞清楚这两者的区别,你对任何编程语言的都不怕,因为,这不是js一门语言,是任何编程语言中都需要掌握的知识,而…

  • 新东方王强经典语录视频_新东方王强北大演讲视频

    新东方王强经典语录视频_新东方王强北大演讲视频王强老师是我最喜欢和尊敬的新东方老师之一,06年冬天,有幸王强老师到我所在的大学做演讲。其实,之前也看过很多王强老师演讲的视频,特摘录王强老师经典十条语录。王强老师语录一:中国人强调含蓄,我含一半,你蓄一半,剩下的就是我要表达的。我举个例子就知道了。比如说一首英文歌曲唱ILoveYou的。这抽象概念,英语表达得非常充满细节和逻辑,你不会觉得有歧义和想象…

  • acwing-9. 分组背包问题(分组背包)

    acwing-9. 分组背包问题(分组背包)有 N 组物品和一个容量是 V 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,V,用空格隔开,分别表示物品组数和背包容量。接下来有 N 组数据:每组数据第一行有一个整数 Si,表示第 i 个物品组的物品数量;每组数据接下来有 Si 行,每行有两个整数 vij,wij,用空格隔开,分别表示第 i

  • 简述设计的意义是什么_定义和概念的最大区别

    简述设计的意义是什么_定义和概念的最大区别究竟啥叫设计?让我们来先看个故事。      你开着一辆车。      在一个暴风雨的晚上。      你经过一个车站。      有三个人正在焦急的等公共汽车。      一个是快要临死的老人,他需要马上去医院      一个是医生,他曾救过你的命,你做梦都想报答他。      还有一个女人/男人,她/他是你做梦都想嫁/娶的人,也许错过

  • ScheduledExecutorService定时周期执行指定的任务

    ScheduledExecutorService定时周期执行指定的任务一:简单说明ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。下面是该接口的原型定义java.util.concurrent.ScheduleExecutorServiceextends ExecutorServiceextends Execut

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号