加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHPExcel读取excel并插入数据库

发布时间:2023-08-26 09:26:10 所属栏目:PHP教程 来源:
导读:PHPExcel是一款php对于excel数据表读写的一个非常棒的插件了,下面我来给大家介绍利用PHPExcel读取excel并导入mysql数据库方法.

例1,代码示例,代码如下:

require_once 'phpexcel/Classes/PHPExcel.php'
PHPExcel是一款php对于excel数据表读写的一个非常棒的插件了,下面我来给大家介绍利用PHPExcel读取excel并导入mysql数据库方法.

例1,代码示例,代码如下:

require_once 'phpexcel/Classes/PHPExcel.php'; 
require_once 'phpexcel/Classes/PHPExcel/IOFactory.php'; 
require_once 'phpexcel/Classes/PHPExcel/Reader/Excel5.php'; 
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format 
$objPHPExcel = $objReader->load($filename); //$filename可以是上传的文件,或者是指定的文件 
$sheet = $objPHPExcel->getSheet(0); 
$highestRow = $sheet->getHighestRow(); // 取得总行数 
$highestColumn = $sheet->getHighestColumn(); // 取得总列数 
$k = 0; 
//循环读取excel文件,读取一条,插入一条 
for($j=2;$j<=$highestRow;$j++) 

$a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//获取A列的值 
$b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//获取B列的值 
$sql = "INSERT INTO table VALUES(".$a.",".$b.")"; 
mysql_query($sql); 

例2,代码如下:

<?php 
set_time_limit(20000); 
ini_set('memory_limit','-1'); 
require_once './PHPExcel.php'; 
require_once './PHPExcel/IOFactory.php'; 
require_once './PHPExcel/Reader/Excel5.php'; 
 
//使用pdo连接数据库 
$dsn = "mysql:host=localhost;dbname=alumni;"; 
$user = "root"; 
$password = ""; 
try{ 
 $dbh = new PDO($dsn,$user,$password); 
 $dbh->query('set names utf8;');  
}catch(PDOException $e){ 
 echo "连接失败".$e->getMessage(); 

//pdo绑定参数操作 
$stmt = $dbh->prepare("insert into alumni(gid,student_no,name) values (:gid,:student_no,:name) "); 
$stmt->bindParam(":gid", $gid,PDO::PARAM_STR); 
$stmt->bindParam(":student_no", $student_no,PDO::PARAM_STR); 
$stmt->bindParam(":name", $name,PDO::PARAM_STR); 
 
$objReader = new PHPExcel_Reader_Excel5(); //use excel2007 
$objPHPExcel = $objReader->load('bks.xls'); //指定的文件 
$sheet = $objPHPExcel->getSheet(0); 
$highestRow = $sheet->getHighestRow(); // 取得总行数 
$highestColumn = $sheet->getHighestColumn(); // 取得总列数 
//开源代码Cuoxin.com 
for($j=1;$j<=10;$j++) 

 
$student_no = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//第一列学号 
$name = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//第二列姓名 
$gid = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();//第三列gid 

//将获取的excel内容插入到数据库 
$stmt->execute(); 
?> 
例3,新建数据库表如下:

-- 数据库: `alumni` 
-- 表的结构 `alumni` 
CREATE TABLE IF NOT EXISTS `alumni` ( 
`id` bigint(20) NOT NULL AUTO_INCREMENT, 
`gid` varchar(20) DEFAULT NULL COMMENT '档案编号', 
`student_no` varchar(20) DEFAULT NULL COMMENT '学号', 
`name` varchar(32) DEFAULT NULL, 
PRIMARY KEY (`id`), 
KEY `gid` (`gid`), 
KEY `name` (`name`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
php程序,代码如下:

<?php  
header("Content-Type:text/html;charset=utf-8");  
require_once 'excel_reader2.php';  
set_time_limit(20000);  
ini_set("memory_limit","2000M");  
//使用pdo连接数据库  
$dsn = "mysql:host=localhost;dbname=alumni;";  
$user = "root";  
$password = "";  
try{  
$dbh = new PDO($dsn,$user,$password);  
$dbh->query('set names utf8;');  
}catch(PDOException $e){  
echo "连接失败".$e->getMessage();  
}  
//pdo绑定参数操作  
$stmt = $dbh->prepare("insert into alumni(gid,student_no,name) values (:gid,:student_no,:name) ");  
$stmt->bindParam(":gid", $gid,PDO::PARAM_STR);  
$stmt->bindParam(":student_no", $student_no,PDO::PARAM_STR);  
$stmt->bindParam(":name", $name,PDO::PARAM_STR);  
//使用php-excel-reader读取excel内容  
$data = new Spreadsheet_Excel_Reader();  
$data->setOutputEncoding('UTF-8');  
$data->read("stu.xls");  
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {  
for ($j = 1; $j <= 3; $j++) {  
$student_no = $data->sheets[0]['cells'][$i][1];  
$name = $data->sheets[0]['cells'][$i][2];  
$gid = $data->sheets[0]['cells'][$i][3];  
}  
//将获取的excel内容插入到数据库  
$stmt->execute();  
}  
echo "执行成功";  
echo "最后插入的ID:".$dbh->lastInsertId();  
?>

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章