PHP操作--PHPExce导出 链接跳转至导出
PHPEXCEL资源包 https://github.com/PHPOffice/PHPExcel/
进入GitHub下载资源包,复制Classes.php文件夹引入即可使用
- 客户端 import.html
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<title>Excel数据导入</title>
<style type="text/css">
body{
margin: 0 auto;
}
table tr td{
border: 1px solid black;
}
</style>
</head>
<body>
<form enctype="multipart/form-data" action="./import.php" method="post">
<table cellpadding="0" cellspacing="0">
<tr>
<td>请选择上传的文件</td>
<td><input type="file" name="myfile"></td>
</tr>
<tr>
<td colspan="2" style="color: red;">
*只能上传excel的xls及xlsx格式,最大文件大小5M。
<a href="./demo/demo.xls">参考文档</a>
</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><input type="submit" value="开始导入" /></td>
</tr>
</table>
</form>
</body>
</html>
- 服务端 import.php
<?php
header("Content-type:text/html;charset=utf-8");
//链接数据库
$link = @mysql_connect('localhost','root','root') or die('连接数据库失败');
mysql_select_db('zhibo',$link);
mysql_query('set names utf8');
function upExecel(){
//判断是否选择了要上传的表格
if (empty($_POST['myfile'])) {
echo "<script>alert(您未选择表格);history.go(-1);</script>";exit();
}
//获取表格的大小,限制上传表格的大小5M
$file_size = $_FILES['myfile']['size'];
if ($file_size>5*1024*1024) {
echo "<script>alert('上传失败,上传的表格不能超过5M的大小');history.go(-1);</script>";exit();
}
// //限制上传表格类型
$file_type = $_FILES['myfile']['type'];
if ($file_type!='application/octet-stream') {
echo "<script>alert('上传失败,只能上传excel的xls及xlsx格式!');history.go(-1)</script>";exit();
}
//判断表格是否上传成功
// if (is_uploaded_file($_FILES['myfile']['tmp_name'])) { //测试不通过
if (!$_FILES['myfile']['error']) {
//加载phpExcel的类
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');
//接收存在缓存中的excel表格
$filename = $_FILES['myfile']['tmp_name'];
$objPHPExcel = $objReader->load($filename); //$filename可以是上传的表格,或者是指定的表格
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
//循环读取excel表格,读取一条,插入一条
//j表示从哪一行开始读取 从第二行开始读取,因为第一行是标题不保存
//$a表示列号
for($j=2;$j<=$highestRow;$j++)
{
$a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//获取A(姓名)列的值
$b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//获取B(密码)列的值
$c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();//获取C(手机号)列的值
$d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();//获取D(地址)列的值
//null 为主键id,自增可用null表示自动添加
$sql = "INSERT INTO house VALUES(null,'$a','$b','$c','$d')";
$res = mysql_query($sql);
}
echo "<script>alert('导入完成!!!');</script>";
}else{
echo "<script>alert('导入失败!');history.go(-1);</script>";
}
}
//调用
upExecel();
?>
- 数据库
CREATE TABLE `infos` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uname` varchar(50) DEFAULT NULL,
`upwd` varchar(32) DEFAULT NULL,
`uphone` varchar(11) DEFAULT NULL,
`uaddress` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
图示过程