tp5 phpexcel导入excel表格
程序员文章站
2022-05-17 13:53:48
...
下载:PHPExcel https://github.com/PHPOffice/PHPExcel
解压后:Classes文件夹改名为PHPExcel
方法一:把文件夹PHPExcel 放到根目录vendor文件夹下
方法二:PHPExcel 放到根目录extend文件夹下
html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>学校管理</title>
<link rel="stylesheet" href="__ADMIN__/common/frame/layui/css/layui.css">
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
<div class="layui-fluid" >
<form method="post" action="{:url('student/savestudentImport')}" class="form-signin" enctype="multipart/form-data" >
<input name="excel" type="file" class="form-control">
<button class="btn btn-lg btn-primary btn-block">导入</button>
</form>
</div>
<script src="__ADMIN__/common/frame/layui/layui.js"></script>
<script>
layui.use(['laypage', 'table', 'element', 'layer', 'jquery','form'], function () {
var table = layui.table;
layer = layui.layer;
laypage = layui.laypage;
element = layui.element;
form = layui.form;
$=layui.$;
});
</script>
</body>
</html>
控制器代码:
//保存 导入
public function savestudentImport(){
//import('phpexcel.PHPExcel', EXTEND_PATH);//方法二
vendor("PHPExcel.PHPExcel"); //方法一
$objPHPExcel = new \PHPExcel();
//获取表单上传文件
$file = request()->file('excel');
$info = $file->validate(['size'=>15678,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel');
if($info){
$exclePath = $info->getSaveName(); //获取文件名
$file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath; //上传文件的地址
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
echo "<pre>";
$excel_array=$obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$data = [];
$i=0;
foreach($excel_array as $k=>$v) {
$data[$k]['title'] = $v[0];
$i++;
}
$success=Db::name('t_station')->insertAll($data); //批量插入数据
//$i=
$error=$i-$success;
echo "总{$i}条,成功{$success}条,失败{$error}条。";
// Db::name('t_station')->insertAll($city); //批量插入数据
}else{
// 上传失败获取错误信息
echo $file->getError();
}
}
调用phpexcel方法
方法一: vendor("PHPExcel.PHPExcel");
方法二:import('phpexcel.PHPExcel', EXTEND_PATH);
推荐阅读