tp5 phpexcel导入excel表格
下载: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);
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
excel2007以上或07以下
$exclePath = $info->getSaveName(); //获取文件名
$file_name = ROOT_PATH . 'upload' . DS . 'excel' . DS . $exclePath; //上传文件的地址
$extension = strtolower( pathinfo($file_name, PATHINFO_EXTENSION) );
if($extension == 'xlsx') {
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');
//加载文件内容,编码utf-8
$obj_PHPExcel = $objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
}else if($extension == 'xls'){
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$obj_PHPExcel = $objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
}else{
return error('请上传excel格式的文件!');
}
$excel_array = $obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
https://blog.csdn.net/weixin_37596689/article/details/78970263
http://www.thinkphp.cn/topic/55693.html
https://www.cnblogs.com/MyIsLu/p/6830579.html
https://blog.csdn.net/tianjingang1/article/details/80393403
https://blog.csdn.net/sunxiaowen13/article/details/54864150
https://blog.csdn.net/phpgoalltheway/article/details/79893383