PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11

最近在做Excel文件导入数据到数据库。网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序。

要用到的工具:

ThinkPHP:轻量级国产PHP开发框架。可在ThinkPHP官网下载。

PHPExcel:Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可在CodePlex官网下载。、

1.设计MySQL数据库product

创建product数据库CREATE DATABASE product DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

创建pro_info表,表结构CREATE TABLE pro_info(

pId int(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,

pName varchar(20) NOT NULL,

pPrice float NOT NULL,

pCount float NOT NULL

);

2.生成项目

先在ThinkPHP同级目录下新建index.php文件,生成项目Home.<?php

define('APP_NAME', 'Home'); //项目名称

define('APP_PATH', './Home/'); //项目路径

define('APP_DEBUG', true); //开启DEBUG

require './ThinkPHP/ThinkPHP.php'; //引入ThinkPHP核心运行文件

?>

3.上传文件表单

在Home/Tpl文件夹下新建Index文件夹,里面新建index.html文件

上传文件

上传文件:

4.在/Home/Lib/Action/IndexAction.class.php中编写显示上传表单页面、上传Excel文件、导入Excel文件方法(如果ThinkPHP/Extend下没有扩展包,需要在ThinkPHP官网下载,然后将扩展包解压放入)<?php

/**

*

* 导入Excel文件数据到MySQL数据库

*/

class IndexAction extends Action {

/**

* 显示上传表单html页面

*/

public function index() {

$this->display();

}

/**

* 上传Excel文件

*/

public function upload() {

//引入ThinkPHP上传文件类

import('ORG.Net.UploadFile');

//实例化上传类

$upload = new UploadFile();

//设置附件上传文件大小200Kib

$upload->mixSize = 2000000;

//设置附件上传类型

$upload->allowExts = array('xls', 'xlsx', 'csv');

//设置附件上传目录在/Home/temp下

$upload->savePath = './Home/temp/';

//保持上传文件名不变

$upload->saveRule = '';

//存在同名文件是否是覆盖

$upload->uploadReplace = true;

if (!$upload->upload()) { //如果上传失败,提示错误信息

$this->error($upload->getErrorMsg());

} else { //上传成功

//获取上传文件信息

$info = $upload->getUploadFileInfo();

//获取上传保存文件名

$fileName = $info[0]['savename'];

//重定向,把$fileName文件名传给importExcel()方法

$this->redirect('Index/importExcel', array('fileName' => $fileName), 1, '上传成功!');

}

}

/**

*

* 导入Excel文件

*/

public function importExcel() {

header("content-type:text/html;charset=utf-8");

//引入PHPExcel类

vendor('PHPExcel');

vendor('PHPExcel.IOFactory');

vendor('PHPExcel.Reader.Excel5');

//redirect传来的文件名

$fileName = $_GET['fileName'];

//文件路径

$filePath = './Home/temp/' . $fileName . '.xlsx';

//实例化PHPExcel类

$PHPExcel = new PHPExcel();

//默认用excel2007读取excel,若格式不对,则用之前的版本进行读取

$PHPReader = new PHPExcel_Reader_Excel2007();

if (!$PHPReader->canRead($filePath)) {

$PHPReader = new PHPExcel_Reader_Excel5();

if (!$PHPReader->canRead($filePath)) {

echo 'no Excel';

return;

}

}

//读取Excel文件

$PHPExcel = $PHPReader->load($filePath);

//读取excel文件中的第一个工作表

$sheet = $PHPExcel->getSheet(0);

//取得最大的列号

$allColumn = $sheet->getHighestColumn();

//取得最大的行号

$allRow = $sheet->getHighestRow();

//从第二行开始插入,第一行是列名

for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) {

//获取B列的值

$name = $PHPExcel->getActiveSheet()->getCell("B" . $currentRow)->getValue();

//获取C列的值

$price = $PHPExcel->getActiveSheet()->getCell("C" . $currentRow)->getValue();

//获取D列的值

$count = $PHPExcel->getActiveSheet()->getCell("D" . $currentRow)->getValue();

$m = M('Info');

$num = $m->add(array('pName' => $name, 'pPrice' => $price, 'pCount' => $count));

}

if ($num > 0) {

echo "添加成功!";

} else {

echo "添加失败!";

}

}

}

?>

5.测试

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例相关推荐

  1. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开 ...

  2. 微信小程序云开发如何实现读取和下载excel文件导入数据到云数据库中?简单好理解

    一般我们在开发中会遇到通过excel文件一键导入数据的模板操作,我们在微信小程序中可以使用node-xlsx插件来解析excel文件的内容变成以json格式的数据返回. 在处理该操作的云函数中下载安装 ...

  3. exls导入数据库 php_PHP Excel导入数据到MySQL数据库

    数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载 phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入 ...

  4. PHP Excel导入数据到MySQL数据库

    数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入按 ...

  5. php长传文件到数据库,php上传文件并存储到mysql数据库的简单示例

    这篇文章主要为大家详细介绍了php上传文件并存储到mysql数据库的简单示例,具有一定的参考价值,可以用来参考一下. 对php上传文件并存储到mysql数据库感兴趣的小伙伴,下面一起跟随512笔记的小 ...

  6. php上传文件并存储到mysql数据库的方法

    本文实例讲述了php上传文件并存储到mysql数据库的方法.分享给大家供大家参考.具体分析如下: 下面的代码分别用于创建mysql表和上传文件保存到mysql数据库 创建mysql表: 1 2 3 4 ...

  7. python实现excel数据与mysql数据库互通有无

    [阅读全文] python在制作一些小工具上本身就有着得天独厚的优势,大多数非标准库的应用只需要进行简单的安装即可使用. 比如:使用python将excel中的数据导入到mysql数据库表中,或是将m ...

  8. java删除数据库表格,《Java:数据库更新excel文件的数据同时删除数据库原来的数据》 excel表格如何删除相同数据库...

    Java:数据库更新excel文件的数据同时删除数据库原来的数据 重新写入blob的byte[],就可以覆盖了....... excel表格怎么检查有重复的数据库 方/步骤 打开需要编辑的Excel表 ...

  9. Day228229.上传查询医院接口、上传查询删除科室接口、上传查询删除排班接口 -尚医通

    尚医通 一.上传医院接口 参考<尚医通API接口文档.docx>业务接口4.1上传医院 参考<医院接口模拟系统.docx>进行接口测试与数据上传 这里要整合hospital-m ...

最新文章

  1. 前端最佳实践之可维护性
  2. 第十四节: 介绍四大并发集合类并结合单例模式下的队列来说明线程安全和非安全的场景及补充性能调优问题。...
  3. 软件测试用python一般用来做什么-做软件测试的, python应该掌握成怎么样 ?
  4. 8. php回调后门
  5. 【PC工具】更高效更快乐地复制粘贴工具CopyQ
  6. 【Python】用于在 Python 中处理 PDF 文件的 PyPDF2 库
  7. 进入工程制图闪退_工程整体一
  8. MySQL binlog三种模式
  9. RDMA(远程直接数据存取)概述
  10. win10系统如何启动sql服务器,升级win10后sql2005 sql服务无法启动如何解决
  11. java解析MT940报文,swift MT报文解析处理
  12. 酷我音乐在计算机其他的图标怎么去掉,酷我音乐这个快捷方式怎么删除?
  13. std::adjacent_find 用法
  14. 基于layui 2.*省市级三级联动
  15. 二叉树的深度(前序 中序 后序 递归非递归搜素)、广度、搜索 C++
  16. Adversarial Learning
  17. 熊分享-负重前行有我陪伴!
  18. 简单明了的LSTM/GRU应用实例(Tensorflow版)
  19. 小程序应用在未来会发展成什么方向?
  20. 适合大学生、职场人士提高效率的实用性网站。

热门文章

  1. C++中如何定义某个数组的引用?
  2. C# 获取属性的displayName
  3. C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码
  4. php7.3安装yaf扩展(亲测)
  5. linux 安装库 编译提示-lcrypto 无法链接,缺少 crypto 库
  6. Linux之sed:修改器按照字符和行数进行筛选和替换行值 选项[动作
  7. Vue的阻止冒泡与阻止默认
  8. mysql主从数据库验证_数据库主从一致性验证
  9. java在己有的类创子类怎么创_使用Java创建自己的异常子类
  10. php7不支持mysql扩展了么_php7不支持mysql扩展需要改成mysqli扩展