Home >php教程 >php手册 >PHPExcel读取excel并导入数据库

PHPExcel读取excel并导入数据库

WBOY
WBOYOriginal
2016-05-27 08:33:552402browse

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(&#39;memory_limit&#39;, &#39;-1&#39;);
require_once &#39;./PHPExcel.php&#39;;
require_once &#39;./PHPExcel/IOFactory.php&#39;;
require_once &#39;./PHPExcel/Reader/Excel5.php&#39;;
//使用pdo连接数据库
$dsn = "mysql:host=localhost;dbname=alumni;";
$user = "root";
$password = "";
try {
    $dbh = new PDO($dsn, $user, $password);
    $dbh->query(&#39;set names utf8;&#39;);
}
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(&#39;bks.xls&#39;); //指定的文件
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
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`CREATETABLEIF NOTEXISTS`alumni`(`id`bigint(20) NOTNULLAUTO_INCREMENT, `gid`varchar(20)
DEFAULT NULLCOMMENT&#39;档案编号&#39;, `student_no`varchar(20)
DEFAULT NULLCOMMENT&#39;学号&#39;, `name`varchar(32)
DEFAULT NULL, PRIMARYKEY(`id`) , KEY`gid`(`gid`) , KEY`name`(`name`)) ENGINE = MyISAM
DEFAULT CHARSET = utf8;

php程序, 代码如下: 

<?php
header("Content-Type:text/html;charset=utf-8");
require_once &#39;excel_reader2.php&#39;;
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(&#39;set names utf8;&#39;);
}
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(&#39;UTF-8&#39;);
$data->read("stu.xls");
for ($i = 1; $i <= $data->sheets[0][&#39;numRows&#39;]; $i++) {
for ($j = 1; $j <= 3; $j++) {
$student_no = $data->sheets[0][&#39;cells&#39;][$i][1];
$name = $data->sheets[0][&#39;cells&#39;][$i][2];
$gid = $data->sheets[0][&#39;cells&#39;][$i][3];
}
//将获取的excel内容插入到数据库
$stmt->execute();
}
echo "执行成功";
echo "最后插入的ID:" . $dbh->lastInsertId();


永久地址:

转载随意~请带上教程地址吧^^

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn