时间:2021-07-01 10:21:17 帮助过:5人阅读
要用到的工具:
ThinkPHP:轻量级国产PHP开发框架。可在ThinkPHP官网下载。
PHPExcel:Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可在CodePlex官网下载。、
1.设计MySQL数据库product
创建product数据库
CREATE DATABASE product DEFAULTCHARACTER SET utf8 COLLATE utf8_general_ci; |
创建pro_info表,表结构
CREATE TABLE pro_info( pId int(4)NOT NULL PRIMARY KEY AUTO_INCREMENT, pName varchar(20)NOT NULL, pPrice floatNOT NULL, pCount floatNOT NULL ); |

2.生成项目
先在ThinkPHP同级目录下新建index.php文件,生成项目Home.
<?php
define('APP_NAME','Home'); //项目名称
define('APP_PATH','./Home/'); //项目路径
define('APP_DEBUG', true); //开启DEBUG
require './ThinkPHP/ThinkPHP.php'; //引入ThinkPHP核心运行文件
?> |
3.上传文件表单
在Home/Tpl文件夹下新建Index文件夹,里面新建index.html文件
<!DOCTYPE html>
<html>
<head>
<title>上传文件</title>
<metacharset="UTF-8">
</head>
<body>
<formid="upload"action="__URL__/upload/"method="post"enctype="multipart/form-data">
<labelfor="file">上传文件:</label>
<inputtype="file"name="file"id="file"><br/>
<inputtype="submit"name="submit"value="上传"/>
</form>
</body>
</html> |
4.在/Home/Lib/Action/IndexAction.class.php中编写显示上传表单页面、上传Excel文件、导入Excel文件方法(如果ThinkPHP/Extend下没有扩展包,需要在ThinkPHP官网下载,然后将扩展包解压放入)
<?php
/**
*
* 导入Excel文件数据到MySQL数据库
*/
class IndexAction extends Action {
/**
* 显示上传表单html页面
*/
publicfunction index() {
$this->display();
}
/**
* 上传Excel文件
*/
publicfunction upload() {
//引入ThinkPHP上传文件类
import('ORG.Net.UploadFile');
//实例化上传类
$upload= new UploadFile();
//设置附件上传文件大小200Kib
$upload->mixSize = 2000000;
//设置附件上传类型
$upload->allowExts =array('xls','xlsx', 'csv');
//设置附件上传目录在/Home/temp下
$upload->savePath ='./Home/temp/';
//保持上传文件名不变
$upload->saveRule ='';
//存在同名文件是否是覆盖
$upload->uploadReplace = true;
if(!$upload->upload()) { //如果上传失败,提示错误信息
$this->error($upload->getErrorMsg());
}else { //上传成功
//获取上传文件信息
$info= $upload->getUploadFileInfo();
//获取上传保存文件名
$fileName= $info[0]['savename'];
//重定向,把$fileName文件名传给importExcel()方法
$this->redirect('Index/importExcel',array('fileName'=> $fileName), 1,'上传成功!');
}
}
/**
*
* 导入Excel文件
*/
publicfunction importExcel() {
header("content-type:text/html;charset=utf-8");
//引入PHPExcel类
vendor('PHPExcel');
vendor('PHPExcel.IOFactory');
vendor('PHPExcel.Reader.Excel5');
//redirect传来的文件名
$fileName= $_GET['fileName'];
//文件路径
$filePath= './Home/temp/' . $fileName . '.xlsx';
//实例化PHPExcel类
$PHPExcel= new PHPExcel();
//默认用excel2007读取excel,若格式不对,则用之前的版本进行读取
$PHPReader= new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($filePath)) {
$PHPReader= new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filePath)) {
echo'no Excel';
return;
}
}
//读取Excel文件
$PHPExcel= $PHPReader->load($filePath);
//读取excel文件中的第一个工作表
$sheet= $PHPExcel->getSheet(0);
//取得最大的列号
$allColumn= $sheet->getHighestColumn();
//取得最大的行号
$allRow= $sheet->getHighestRow();
//从第二行开始插入,第一行是列名
for($currentRow = 2; $currentRow <= $allRow; $currentRow++) {
//获取B列的值
$name= $PHPExcel->getActiveSheet()->getCell("B". $currentRow)->getValue();
//获取C列的值
$price= $PHPExcel->getActiveSheet()->getCell("C". $currentRow)->getValue();
//获取D列的值
$count= $PHPExcel->getActiveSheet()->getCell("D". $currentRow)->getValue();
$m= M('Info');
$num= $m->add(array('pName'=> $name,'pPrice' => $price, 'pCount'=> $count));
}
if($num > 0) {
echo"添加成功!";
}else {
echo"添加失败!";
}
}
}
?> |
5.测试

相关推荐:
分享csv导入数据到mysql实例
导入数据到mysql的一种简单的方法_MySQL
SqlServer导入数据到MySql
以上就是Excel文件导入数据到MySQL数据库的方法实例的详细内容,更多请关注Gxl网其它相关文章!