时间:2021-05-02
最近在做excel文件导入数据到数据库。网站如果想支持批量插入数据,可以制作一个上传excel文件,导入里面的数据内容到mysql数据库的小程序。
要用到的工具:
thinkphp:轻量级国产php开发框架。可在thinkphp官网下载。
phpexcel:office excel 文档的一个php类库,它基于微软的openxml标准和php语言。可在codeplex官网下载。、
1.设计mysql数据库product
创建product数据库
? 1 create database product default character set utf8 collate utf8_general_ci;创建pro_info表,表结构
? 1 2 3 4 5 6 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.
? 1 2 3 4 5 6 7 <?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文件
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!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官网下载,然后将扩展包解压放入)
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 <?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.测试
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了php导入excel文件到mysql数据库的方法。分享给大家供大家参考。具体分析如下:php导入excel文件入mysql数据库我们是需一借助一个
本文实例讲述了php将csv文件导入到mysql数据库的方法。分享给大家供大家参考。具体分析如下:本程序实现数据导入原理是先把csv文件上传到服务器,然后再通过
Python从MySQL数据库中导出csv文件处理csv文件导入MySQL数据库importpymysqlimportcsvimportcodecsdefget
本文实例讲述了php上传文件并存储到mysql数据库的方法。分享给大家供大家参考。具体分析如下:下面的代码分别用于创建mysql表和上传文件保存到mysql数据
php开发中肯定会遇到将excel文件内容导入到数据库的需要,php-excel-reader是一个读取excel的类,可以很轻松的使用它读取excel文件非常