手机版

PHP上传Excel文件并将数据导入MySQL数据库的示例

时间:2021-09-14 来源:互联网 编辑:宝哥软件园 浏览:

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

要使用的工具:

ThinkPHP:一个轻量级的国产PHP开发框架。可以从ThinkPHP官网下载。

PHP xcel:Office Excel文档的PHP类库,基于微软的OpenXML标准和PHP语言。可以从CodePlex官网下载。

1.设计MySQL数据库产品

创建产品数据库

CREATE DATABASE产品DEFAULT CHARACTER SET utf8 COLLATE utf8 _ general _ ci;创建pro_info表,表结构

CREATE TABLE pro_info(pId int(4)不为空主键AUTO_INCREMENT,pName varchar(20)不为空,pPrice float不为空,pCount float不为空);

2.生成项目

首先,在同一级别的ThinkPHP目录下创建一个新的index.php文件,并生成项目Home。

?php定义(' APP_NAME ',' Home ');//项目名称定义(' APP_PATH ',')。/Home/');//定义项目路径(' app _ debug ',true);//打开“调试要求”。/think PHP/think PHP . PHP ';//导入ThinkPHP核心运行文件?3.上传文件表单

在Home/Tpl文件夹下创建一个新的Index文件夹,并在其中创建一个新的index.html文件

!DOCTYPE html html head title Upload file/title metachartset=' UTF-8 '/流头表单ID=' Upload ' action=' _ _ URL _ _/Upload/' method=' post ' enctype=' multipart/Form-data '标签为=' file ' Upload file :/标签输入类型=' file ' name=' file ' ID=' file ' br/输入类型=' submit ' name=' submit ' value=' Upload '/Form/body/Html 4。编写在/home/lib/action/indexaction中显示上传表单页面、上传Excel文件、导入Excel文件的方法。上课。PHP(如果ThinkPHP/Extend下没有扩展包,需要在ThinkPHP官网下载,然后解压放进去)

?php /****导入超过文件数据到关系型数据库数据库*/class IndexAction扩展了行动{ /** *显示上传表单超文本标记语言页面*/public function index(){ $ this-display();} /** * 上传超过文件*/公共函数上传(){ //引入ThinkPHP上传文件类导入(' ORG .净。UploadFile’);//实例化上传类$ upload=new UploadFile();//设置附件上传文件大小200 kib $ upload-mix size=2000000;//设置附件上传类型$upload-allowExts=array('xls ',' xlsx ',' CSV ');//设置附件上传目录在/家庭/临时下$upload-savePath=' ./Home/temp/';//保持上传文件名不变$ upload-SaveRule=' ';//存在同名文件是否是覆盖$ upload-uploadReplace=true;if(!$上传-上传()){ //如果上传失败,提示错误信息$ this-error($ upload-geterrmsg());} else { //上传成功//获取上传文件信息$ info=$ upload-getUploadFileInfo();//获取上传保存文件名$ FIlename=$ info[0]['保存名称'];//重定向,把$fileName文件名传给importExcel()方法$这个-重定向(' Index/importxcel ',数组(' fileName'=$fileName),1 '上传成功!');} } /** * * 导入超过文件*/public function import xcel(){ header(' content-type : text/html;charset=utf-8 ');//引入PHPExcel类供应商(' PhPexcel ');供应商(' PHPExcel .IOFactory’);供应商(' PHPExcel .读者。excel 5’);//重定向传来的文件名$ FIlename=$ _ GET[' FIlename '];//文件路径$filePath=' ./Home/temp/.$ FIlename . xlsx ';//实例化PHPExcel类$ PhPexcel=new PhPexcel();//默认用excel2007读取excel,若格式不对,则用之前的版本进行读取$ PHPReader=new PHPExcel _ Reader _ excel 2007();if(!$ PHPReader-canRead($文件路径)){ $ PHPReader=new PHPExcel _ Reader _ excel 5();if(!$ PHPReader-canRead($文件路径)){ echo ' no Excel返回;} } //读取超过文件$ PHPExcel=$ PHPReader-load($文件路径);//读取超过文件中的第一个工作表$ sheet=$ PHPExcel-getSheet(0);//取得最大的列号$ all column=$ sheet-gethigheeestcolumn();//取得最大的行号$ ALlRow=$ sheet-GetHighterow();//从第二行开始插入,第一行是列名for($ CurrentRow=2;$ current ow=$ allow $ current ow){//获取B列的值$ name=$ PhPexcel-GetActivissSheet()-GetCell(' B ').$ CurrentRow)-GetValue();//获取C列的值$ price=$ PHPExcel-getActiveSheet()-getCell(' C ').$ CurrentRow)-GetValue();//获取D列的值$ count=$ PHPExcel-getactivesssheet()-GetCell(' D ').$ CurrentRow)-GetValue();$ M=M('信息');$num=$m-add(数组(' pName'=$name,' pPrice'=$price,' pCount '=$ count));} if ($num 0) { echo '添加成功!} else { echo '添加失败!} } }?5.测试

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

版权声明:PHP上传Excel文件并将数据导入MySQL数据库的示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。