PHP将Excel文件导入到MySQL数据库
这篇文章主要介绍了PHP上传Excel文件导入数据到MySQL数据库示例,可以将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.
<?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文件
<!DOCTYPE html> <html> <head> <title>上传文件</title> <meta charset="UTF-8"> </head> <body> <form id="upload" action="__URL__/upload/" method="post" enctype="multipart/form-data"> <label for="file">上传文件:</label> <input type="file" name="file" id="file"><br /> <input type="submit" name="submit" value="上传" /> </form> </body> </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.测试
总结:以上就是本文的全部内容,希望对大家的学习有所帮助。同时也希望大家多多支持PHP中文网。
相关推荐:
以上是PHP将Excel文件导入到MySQL数据库的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MySQL和phpMyAdmin可以通过以下步骤进行有效管理:1.创建和删除数据库:在phpMyAdmin中点击几下即可完成。2.管理表:可以创建表、修改结构、添加索引。3.数据操作:支持插入、更新、删除数据和执行SQL查询。4.导入导出数据:支持SQL、CSV、XML等格式。5.优化和监控:使用OPTIMIZETABLE命令优化表,并利用查询分析器和监控工具解决性能问题。

AI可以帮助优化Composer的使用,具体方法包括:1.依赖管理优化:AI分析依赖关系,建议最佳版本组合,减少冲突。2.自动化代码生成:AI生成符合最佳实践的composer.json文件。3.代码质量提升:AI检测潜在问题,提供优化建议,提高代码质量。这些方法通过机器学习和自然语言处理技术实现,帮助开发者提高效率和代码质量。

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,删除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段时,需指定位置以优化查询性能和数据结构;删除字段前需确认操作不可逆;使用在线DDL、备份数据、测试环境和低负载时间段修改表结构是性能优化和最佳实践。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

要安全、彻底地卸载MySQL并清理所有残留文件,需遵循以下步骤:1.停止MySQL服务;2.卸载MySQL软件包;3.清理配置文件和数据目录;4.验证卸载是否彻底。

MySQL批量插入数据的高效方法包括:1.使用INSERTINTO...VALUES语法,2.利用LOADDATAINFILE命令,3.使用事务处理,4.调整批量大小,5.禁用索引,6.使用INSERTIGNORE或INSERT...ONDUPLICATEKEYUPDATE,这些方法能显着提升数据库操作效率。

MySQL函数可用于数据处理和计算。1.基本用法包括字符串处理、日期计算和数学运算。2.高级用法涉及结合多个函数实现复杂操作。3.性能优化需避免在WHERE子句中使用函数,并使用GROUPBY和临时表。

在MySQL中配置字符集和排序规则的方法包括:1.设置服务器级别的字符集和排序规则:SETNAMES'utf8';SETCHARACTERSETutf8;SETCOLLATION_CONNECTION='utf8_general_ci';2.创建使用特定字符集和排序规则的数据库:CREATEDATABASEexample_dbCHARACTERSETutf8COLLATEutf8_general_ci;3.创建表时指定字符集和排序规则:CREATETABLEexample_table(idINT
