博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP上传多个Excel表格里的数据到数据库然后在页面显示
阅读量:5112 次
发布时间:2019-06-13

本文共 2854 字,大约阅读时间需要 9 分钟。

//上传excel public function uploadExcel() {
//获取当前的请求信息,或者使用助手函数request() $request = \think\Request::instance(); //引入导入Excel第三方库 vendor('PHPExcel.Classes.PHPExcel.PHPExcel'); //实例化PHPExcel类 $excel = new \PHPExcel(); //获得上传文件的信息,file里面的是input框里的名字 $files = request()->file('files'); foreach ($files as $file) {
//数据为空返回错误 if (empty($file)) {
//退出当前循环,继续下一循环 continue; } //得到文件原名 $fileInfo=$file->getInfo(); $fileOldName=strtolower($fileInfo['name']); //移动到框架应用根目录/public/uploads/目录下 $info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH.'public'.DS.'uploads'); //获取上传到后台的文件名 $fileName = $info->getSaveName(); //获取文件路径 $filePath = ROOT_PATH.'public'.DIRECTORY_SEPARATOR.'uploads'.DIRECTORY_SEPARATOR.$fileName; //获取文件后缀 $suffix = $info->getExtension(); //判断哪种类型 if ($suffix == 'xlsx') {
$reader = \PHPExcel_IOFactory::createReader('Excel2007'); } else {
$reader = PHPExcel_IOFactory::createReader('Excel5'); } //表格列名 $cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ'); //载入excel文件 $excel = $reader->load("$filePath", $encode = 'utf-8'); //读取第一张表 $sheet = $excel->getSheet(0); //获取总行数 $row_num = $sheet->getHighestRow(); //获取总列数 //$col_num = $sheet->getHighestColumn(); $columnH = $sheet->getHighestColumn(); //取得最大的列号 $columnCnt = array_search($columnH, $cellName); //获取合并单元格信息 $info=$sheet->getMergeCells(); $data = []; //数组形式获取表格数据 for($_row=1; $_row<=$row_num; $_row++){ //读取内容 for($_column=0; $_column<=$columnCnt; $_column++){
//根据表格的行和列得到表格的值 $cellId = $cellName[$_column].$_row; $cellValue = $sheet->getCell($cellId)->getValue(); //富文本转换字符串 if(is_object($cellValue)){
$cellValue = $cellValue->__toString(); } $rkey=$_row-1; $data[$rkey][$cellName[$_column]] = $cellValue; } } //转化成json字符串 $str=json_encode($data); $arr[]=['tableContent'=>$str,'tableName'=>$fileOldName]; } //批量插入数据 $res=Db::table('bbs_name')->insertAll($arr); } //从数据库中得到Excel的数据 public function getExcel() {
$data = Db::name('name')->select(); dump(json_encode($data)); }

转载于:https://www.cnblogs.com/ymdphp/p/10880165.html

你可能感兴趣的文章
使用word发布博客
查看>>
面向对象的小demo
查看>>
微服务之初了解(一)
查看>>
GDOI DAY1游记
查看>>
收集WebDriver的执行命令和参数信息
查看>>
数据结构与算法(三)-线性表之静态链表
查看>>
mac下的mysql报错:ERROR 1045(28000)和ERROR 2002 (HY000)的解决办法
查看>>
MyBaits动态sql语句
查看>>
HDU4405(期望DP)
查看>>
拉格朗日乘子法 那些年学过的高数
查看>>
vs code 的便捷使用
查看>>
Spring MVC @ResponseBody返回中文字符串乱码问题
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JS 中的跨域请求
查看>>
JAVA开发环境搭建
查看>>
mysql基础语句
查看>>
Oracle中的rownum不能使用大于>的问题
查看>>
cassandra vs mongo (1)存储引擎
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
遍历Map对象
查看>>