从Excel文件读取数据批量导入到Mysql数据库
来源:互联网 发布:centos 6.5 cacti 编辑:程序博客网 时间:2024/04/30 00:25
这些天有个项目用到了PHP+MySQL和Excel的交互,需要导入和导出。所以,昨天摸索了一下,发现网上有很多有问题。经过自己的测试,我的可以正常在服务器上运行,在这里和大家分享一下。
准备文件:1)首先准备好PHPExcel:到官方网站http://phpexcel.codeplex.com/下载最近版本的PHPExcel,解压后会发现里面有class、Documentation、Tests三个文件夹和三个txt的日志文件,主要用到的是Class文件,而Tests主要是一些demo示例。2)Excel文件。如我的是:
从Excel文件读取数据批量导入到Mysql数据库。导入Xls处理流程:选择xls文件->上传xls文件到服务器->通过PHP-ExcelReader解析excel->批量入库。
下面进行导入:
第一步:建立数据库和数据表(按照自己的Excel数据设立字段)。
CREATE DATABASE php_excel;USE php_excel;CREATE TABLE IF NOT EXISTS php_excel(id int(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,gid varchar(20) NOT NULL,stu_no varchar(20) NOT NULL,name varchar(45) NOT NULL,age int(4) NOT NULL)ENGINE=MyISAM DEFAULT CHARSET=utf8;
第二步:前台index.php文件。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>phpexcel导入excel数据到MYSQL数据库</title></head><body><form name="frm1" action="insertdb.php" method="post" enctype="multipart/form-data"><input name="filename" type="file" /><input name="submit" type="submit" value="import" /></form></body></html>
第三步:向数据库插入数据的insertdb.php文件。
session_start();header("Content-type:text/html;charset:utf-8");//全局变量$succ_result=0;$error_result=0;$file=$_FILES['filename'];$max_size="2000000"; //最大文件限制(单位:byte)$fname=$file['name'];$ftype=strtolower(substr(strrchr($fname,'.'),1)); //文件格式$uploadfile=$file['tmp_name'];if($_SERVER['REQUEST_METHOD']=='POST'){if(is_uploaded_file($uploadfile)){ if($file['size']>$max_size){echo "Import file is too large"; exit; }if($ftype!='xls'){echo "Import file type is error";exit; }}else{echo "The file is not empty!";exit; } }require("./conn.php"); //连接mysql数据库//调用phpexcel类库require_once 'PHPExcel.php'; require_once 'PHPExcel\IOFactory.php';require_once 'PHPExcel\Reader\Excel5.php';$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format $objPHPExcel = $objReader->load($uploadfile); $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); // 取得总行数 $highestColumn = $sheet->getHighestColumn(); // 取得总列数 $arr_result=array(); $strs=array();for($j=2;$j<=$highestRow;$j++) { unset($arr_result); unset($strs); for($k='A';$k<= $highestColumn;$k++) { //读取单元格 $arr_result .= $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().','; } $strs=explode(",",$arr_result); $sql="insert into php_excel(gid,stu_no,name,age) values ($strs[0],'$strs[1]','$strs[2]',$strs[3])"; echo $sql."<br/>"; mysql_query("set names utf8"); $result=mysql_query($sql) or die("执行错误"); $insert_num=mysql_affected_rows(); if($insert_num>0){ $succ_result+=1; }else{ $error_result+=1; }}echo "插入成功".$succ_result."条数据!!!<br>";echo "插入失败".$error_result."条数据!!!";
其中conn.php代码如下:
$mysql=mysql_connect("localhost","root","") or die("数据库连接失败!");mysql_select_db("php_excel",$mysql);mysql_query("set names utf8");
我的导入效果如下:
至此,从Excel文件读取数据批量导入到Mysql数据库 完成。
- 从Excel文件读取数据批量导入到Mysql数据库
- 从Mysql数据库读取数据批量导入到Excel文件
- 批量数据从excel导入到mysql
- excel数据批量导入到Mysql数据库
- 读取Excel数据、批量导入到Oracle数据库
- 从文件导入数据到MySQL数据库
- 从数据库读取数据导入到Excel中
- 从Excel读取数据导入到数据库中
- java从Excel文件读取数据到数据库和从读取数据库数据写入Excel
- java批量导入excel到Mysql数据库
- excel批量导入数据到数据库
- excel-从excel导入数据到数据库
- 从Excel文件中,导入数据到SQL数据库中
- ASP.NET 从Excel文件导入数据到数据库(笔记)
- 从Excel文件中,导入数据到SQL数据库
- 关于读取Excel文件数据到数据库,以及从数据库导出数据到Excel的例子
- PHP上传Excel文件导入数据到MySQL数据库示例
- 批量导入数据到MySQL数据库
- 内存映射文件原理探索
- matlab: 盒图---boxplot
- vim制表符空格替换配置及注意事项
- nginx配置入门 详细出处参考:http://www.nginx.cn/591.html
- sun.misc.Launcher 找不到jar包?
- 从Excel文件读取数据批量导入到Mysql数据库
- 最强暴兵流
- 登录系统(5)
- 编译错误记录
- Codeforces Beta Round #70 (Div. 2) / 78A Haiku (字符串处理)
- cocos2d 中原点是在左下角,ios sdk 中默认是在左上角
- wince6.0下 Error: failed PB timebomb check
- Android入门之单选按钮(RadioButton)
- 中国天气网城市代码