PHP使用PHPExcel读取excel数据并批量上传到数据库
发布:smiling 来源: PHP粉丝网 添加日期:2025-12-12 11:07:36 浏览: 评论:0
当遇到需要批量导入数据的时候,前端会上传一个excel表格,由后端读取数据并存入数据库。前端代码就不介绍了,这是一个前后端分离的项目,主要是讲解后端读取excel表格的数据。前端上传文件就可以了。
PHPExcel 是什么
是用来操作office excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如Excel(BIFF).xls,Excel 2007 (OfficeOpenXML),.xlsx,CSV,Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
要求
PHP 5.2.0 版本及以上
PHP extension php_zip 开启 (如果你需要使用 PHPExcel 来操作 .xlsx .ods or .gnumeric 文件)
PHP extension php_xml 开启
PHP extension php_gd2 开启(选填, 如果需要计算准确的列宽需要开启此扩展)
PHP读取文件写入数据库
- <?php
- header("Content-type:text/html; charset=utf-8");
- // 制定允许其他域名访问
- header("Access-Control-Allow-Origin:*");
- // 响应类型
- header('Access-Control-Allow-Methods:POST');
- // 响应头设置
- header('Access-Control-Allow-Headers:x-requested-with, content-type');
- // 数据库配置文件
- include'./config/config.php';
- // 下载 PHPExcel 放入项目内,引入即可
- include"./PHPExcel-1.8/Classes/PHPExcel/IOFactory.php";
- // 获取前端传入的文件
- $file= $_FILES['file'];
- //临时文件存放路径
- $fileTmp= $file['tmp_name'];
- $fileSize= $file['size'];
- $fileName= $file['name'];
- //错误,输出0,表示文件提交成功
- $fileError= $file['error'];
- if($fileError==0) {
- $inputFileName= $fileTmp;
- date_default_timezone_set('PRC');
- // 读取excel文件
- try{
- $inputFileType= PHPExcel_IOFactory::identify($inputFileName);
- $objReader= PHPExcel_IOFactory::createReader($inputFileType);
- $objPHPExcel= $objReader->load($inputFileName);
- } catch(Exception $e) {
- }
- // 确定要读取的sheet,什么是sheet,看excel的右下角
- $sheet= $objPHPExcel->getSheet(0);
- $highestRow= $sheet->getHighestRow();
- $highestColumn= $sheet->getHighestColumn();
- $time= date('Y-m-d h:i:s', time());
- // 把数据处理后存入数组
- $array= array();
- $time= date('Y-m-d h:i:s', time());
- for($row= 2; $row<= $highestRow; $row++) {
- $rowData= $sheet->rangeToArray('A'. $row. ':'. $highestColumn. $row, NULL, TRUE, FALSE);
- // 重复数据不插入数据库
- $falg= $rowData[0][0];
- $sqlIf= "SELECT codes FROM tablef where codes = '$falg'";
- $querySQL= mysqli_query($conn,$sqlIf);
- $arrSQL= mysqli_fetch_array($querySQL);
- if($arrSQL== null) {
- // 获取到 Excel 每行的数据插入数据库,需根据你自己的表格进行调整
- $sql="insert into tablef(codes,year,month,idcode,type,timese) values('".$rowData[0][0]."','".($rowData[0][1])."','".$rowData[0][2]."','".$rowData[0][3]."','".$rowData[0][4]."','".$time."')";
- $query=mysqli_query($conn,$sql);//函数执行一条 MySQL 查询。
- }
- }
- // 成功后返回给前端
- echojson_encode(["msg"=> 'ok']);
- }else{
- echojson_encode(["msg"=> 'no']);
- }
- // 断开数据库连接
- $conn->close();
- ?>
结语
这是原生PHP使用的一个方式,我PHP的话只会一个 ThinkPHP 框架,这边我测试的话 ThinkPHP 使用起来跟这个也是差不多的,至于有些其他的php框架的话我没有用过,但是基本都差不多。现在前后端分离占主导地位,对于一些做后台的兄弟们来说,这些批量导入数据的是很常见的,这边就分享一个简单的,对于一些sql语句的话是需要修改的,这里面的sql语句是不安全的,这里提醒一下大家,测试的时候使用这些SQL语句为啥问题,生产环境切记不能这样用。
Tags: PHPExcel读取excel PHPExcel批量上传数据库
- 上一篇:基于PHP实现一个简单的http服务器
- 下一篇:最后一页
相关文章
- ·PHPExcel读取excel并导入mysql数据库代码(2014-09-10)
- ·PHPExcel读取excel并导入数据库(2014-09-10)
- ·利用phpexcel读取excel实现代码(2014-09-11)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)
