(超级详细版)利用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 代码如下

第三步:

①在ThinkPHP\Library\Vendor目录下新建文件夹PHPExcel

②将PHPExcel_1.8.0_doc\Classes中的文件拷贝到ThinkPHP\Library\Vendor\
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>

第七步:修改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("请选择上传的文件");
}
}
}

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

excel文件内容(根据数据库来):

数据库结构:

最后----大功告成!!

##源码下载地址

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

原文地址:https://www.cnblogs.com/lxwphp/p/9076369.html

时间: 2024-08-28 23:08:43

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

PHPexcel 将excel表格数据导入数据库

// index.php<form name="frm1" enctype="multipart/form-data" action="insertdb.php" method="post">   <input name="filename" type="file" /><input name="submit" type="su

利用TOAD实现把EXCEL数据导入oracle数据库

利用TOAD实现把EXCEL数据导入oracle数据库 工具:   Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然后Database->Import->Table Data打开了导入窗口,如下图   选择一个数据库表,点击Show Data按钮,可以显示表中的内容 其中schema 就是这张表的所属用户 Object type 就是 table Object name 就是表的名称 Commit mode 

Java版将EXCEL表数据导入到数据库中

1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls")); //获取该工作表中的第一个工作表 Sheet sheet=workBook.getSheet(0); //获取该工作表的行数,以供下面循环使用 int rowSize=sheet.getRows(); for(int i=0;i<rowSize;i++) { //编号 String

开发版速达扩展功能---业务单据明细表格数据导入

原版速达软件在单据明细导入的时候,只能提供文本方式导入,既不友好,也不方便,而且列头只能固化,导入的数据列也是很有限:而开发版速达则提供了当代流行的Excel导入模式,导入的列和列名都可以由用户自己定制,下面聚为大家详细讲解下开发版业务单据明细导入的方式,以下以销售开单为讲解,其他单据都是类似: 1.先打开销售开单-操作-界面布局 设置明细需要导入的列信息:如需要导入某列,请勾选[项导入],如果导入的列名不是系统中设置的列名,请修改列中文名称:如导入的excel文件中把仓库改成了车间,你只需要在

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)【转】

一. 框架详情 Spring 是一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的.Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益. 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. SpringMVC 属于SpringFrameWork的后续产品,分离了控制器.模型对象.分派器以及处理程序对象的角色,这种分离让它们更容易进行定制. MyBatis 是一个基于Ja

手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式,将整个系统划分为显示层.Controller层.Service层.Dao层四层,使用SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理, MyBatis作为数据对象持久化引擎. 一. 框架详情 Spring 是一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的.Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何

大数据测试之hadoop单机环境搭建(超级详细版)

友情提示:本文超级长,请备好瓜子 Hadoop的运行模式 单机模式是Hadoop的默认模式,在该模式下无需任何守护进程,所有程序都在单个JVM上运行,该模式主要用于开发和调试mapreduce的应用逻辑: 伪分布式模式下,Hadoop守护进程运行在一台机器上,模拟一个小规模的集群.该模式在单机模式的基础上增加了代码调试的功能,允许你检查NameNode,DataNode,Jobtracker,Tasktracker等模拟节点的运行情况: 单机模式和伪分布式模式均用于开发和调试的目的,真实Hado

利用PHP执行SQL文件,将SQL文件导入到数据库

如何利用php自动执行.sql文件.其实很简单,就是获取sql文件中的内容,然后将每一句sql语句一次执行就行啦. 这是代码 //读取文件内容 $_sql = file_get_contents('test.sql'); $_arr = explode(';', $_sql); $_mysqli = new mysqli(DB_HOST,DB_USER,DB_PASS); if (mysqli_connect_errno()) { exit('连接数据库出错'); } //执行sql语句 for

利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(四)(网内首发超详细版)

6安装maven 下载地址:http://maven.apache.org/download.cgi 解压安装 unzip –o apache-maven-3.2.1-bin.zip mv apache-maven-3.2.1 maven 配置环境变量 MAVEN_HOME=/usr/local/maven export PATH=$MAVEN_HOME/bin:$PATH 7 java环境自动构建部署 7.1 新建job 输入名称如下图 输入SVN服务器地址 注意:上面已经认证过了,因此没有报