php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
最近在做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.
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官网下载,然后将扩展包解压放入)
/**
*
* 导入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.测试
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例相关推荐
- php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...
- 微信小程序云开发如何实现读取和下载excel文件导入数据到云数据库中?简单好理解
一般我们在开发中会遇到通过excel文件一键导入数据的模板操作,我们在微信小程序中可以使用node-xlsx插件来解析excel文件的内容变成以json格式的数据返回. 在处理该操作的云函数中下载安装 ...
- exls导入数据库 php_PHP Excel导入数据到MySQL数据库
数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载 phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入 ...
- PHP Excel导入数据到MySQL数据库
数据导出已经有了,怎么能没有数据导入呢,同样使用TP5框架,首先需要下载phpexcel.zip,放到第三方类库目录vendor目录下,然后有一个页面可以让你选择要导入的Excel文件,然后点击导入按 ...
- php长传文件到数据库,php上传文件并存储到mysql数据库的简单示例
这篇文章主要为大家详细介绍了php上传文件并存储到mysql数据库的简单示例,具有一定的参考价值,可以用来参考一下. 对php上传文件并存储到mysql数据库感兴趣的小伙伴,下面一起跟随512笔记的小 ...
- php上传文件并存储到mysql数据库的方法
本文实例讲述了php上传文件并存储到mysql数据库的方法.分享给大家供大家参考.具体分析如下: 下面的代码分别用于创建mysql表和上传文件保存到mysql数据库 创建mysql表: 1 2 3 4 ...
- python实现excel数据与mysql数据库互通有无
[阅读全文] python在制作一些小工具上本身就有着得天独厚的优势,大多数非标准库的应用只需要进行简单的安装即可使用. 比如:使用python将excel中的数据导入到mysql数据库表中,或是将m ...
- java删除数据库表格,《Java:数据库更新excel文件的数据同时删除数据库原来的数据》 excel表格如何删除相同数据库...
Java:数据库更新excel文件的数据同时删除数据库原来的数据 重新写入blob的byte[],就可以覆盖了....... excel表格怎么检查有重复的数据库 方/步骤 打开需要编辑的Excel表 ...
- Linux上Oracle 11g安装步骤图解(超详细图文教程)附带导入数据和新建数据库教程
首先本文采用Docker方式快速在Linux上安装 目录 1.安装Docker容器 (1)登陆服务器,输入命令安装Docker容器 (2)安装完成后运行下列代码如果弹出Docker版本则表示安装成功 ...
最新文章
- String、StringBuffer、StringBuilder三者的异同
- 【matlab】pcolor和colormap的使用
- xz命令--Linux命令应用大词典729个命令解读
- Spark Streaming初步使用以及工作原理详解
- 自动装配有哪些局限性?
- 模拟视频光端机与数字光端机究竟有何区别
- 智能android电视更换播放器,GitHub - qfwc258/TvPlayer: android智能电视播放器,可以播放各电视台节目,播放基于ijkplayer的实现。...
- java程序员必备基础知识
- apache make install 问题
- Python 的List排序
- 【R语言】如何直接调取Wind、iFinD数据接口教程
- [软件应用]深入验证Nero是否注册成功
- RapidXML的读写
- 斐讯k2路由器刷固件一条龙——从小白到大神
- “流动书库”藏书汇总,欢迎借阅
- Ubuntu快速下载电驴ed2k文件
- spring-day03-底层事务、AOP
- 复旦-华盛顿大学EMBA 二十年20人丨徐欣:从外企转战民企的变身
- android10和11,安卓10与安卓11究竟差异在哪里?我们拿这两台新机试了一下
- 利用文件的md5值查重并删除重复的文件
热门文章
- Intel Core Enhanced Core架构/微架构/流水线 (9) - 执行单元发射口旁路时延
- 混合app用百分比还是rem_[笔记]em, rem最佳实践
- MySQL正则表达式的使用
- python writerow 返回值_python – .writerow()csv返回一个数字而不是写行
- 静态网页制作作业_HTML CSS复习之制作静态网页
- Unity有哪些让做项目事半功倍的插件值得推荐?
- LeetCode - Easy - Excel Sheet Column Title
- larvel nginx 配置
- jquery js 兄弟父元素的获取
- vue-cli脚手架下,assets中的图片路径使用变量?