phpexcel导入数据库 基于thinkphp3.2
public function studentImportExcel(){
if (!empty ( $_FILES)){
$upload = new \Think\Upload(); // 实例化上传类
$upload->maxSize = 10485760 ; // 设置附件上传大小
$upload->exts = array('xls','xlsx'); // 设置附件上传类型
$upload->rootPath = './Public/Excel/'; // 设置附件上传根目录
$upload->autoSub = false; // 将自动生成以photo后面加时间的形式文件夹,关闭
// 上传文件
$info = $upload->upload(); // 上传文件
$exts = $info['excel']['ext']; // 获取文件后缀
$filename = $upload->rootPath.$info['excel']['savename']; // 生成文件路径名
if(!$info) { // 上传错误提示错误信息
$this->error($upload->getError());
}else{ // 上传成功
import("Org.Util.PHPExcel"); // 导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
$PHPExcel = new \PHPExcel(); // 创建PHPExcel对象,注意,不能少了\
if ($exts == 'xls') { // 如果excel文件后缀名为.xls,导入这个类
import("Org.Util.PHPExcel.Reader.Excel5");
$PHPReader = new \PHPExcel_Reader_Excel5();
} else
if ($exts == 'xlsx') {
import("Org.Util.PHPExcel.Reader.Excel2007");
$PHPReader = new \PHPExcel_Reader_Excel2007();
}
$PHPExcel = $PHPReader->load($filename); // 载入文件
$currentSheet = $PHPExcel->getSheet(0); // 获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
$allColumn = $currentSheet->getHighestColumn(); // 获取总列数
$allRow = $currentSheet->getHighestRow(); // 获取总行数
for ($currentRow = 0; $currentRow <= $allRow; $currentRow ++) {// 循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn ++) {// 从哪列开始,A表示第一列
$address = $currentColumn . $currentRow; // 数据坐标
$ExlData[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue();// 读取到的数据,保存到数组$arr中
}
}
$Hint = new \Operation\Controller\HintController(); // 生成操作类对象
$data = studentImportExcel_RAW($ExlData); // 调用公用方法的读数组并写入数据库操作
$users = M('users'); // 生成数据库对象
$result = $users->addAll($data); // 批量写入数据库
if ($result) { // 验证
$Hint->mysuccee("导入成功", "2", "Admin/Users/studentManage");// 跳转学生管理页面
} else {
$Hint->myerror("导入失败,原因可能是excel表中有些用户已被注册。或表格格式错误","5");// 提示错误
}
}
}else {
$this->display();
}
}
function studentImportExcel_RAW($ExlData){ // 将导入表中的数据添加到 数据库数组中去
$Hint = new \Operation\Controller\HintController(); // 生成操作类对象
for($i = 2,$j=0;$i<sizeof($ExlData);$i++,$j++){
$dataList[] = array(
'username'=>$ExlData[$i]['A'],
'pwd' =>MD5(11),
'realname'=>$ExlData[$i]['B'],
'stunum' =>$ExlData[$i]['C'],
'email' =>$ExlData[$i]['D'],
'phone' =>$ExlData[$i]['E'],
'photo' =>$Hint->randPhoto(),
'role' =>'1',
'intro' =>'这家伙很懒什么都没留下',
'regdate' =>date('Y-m-d H:i:s', time()) // 写入注册时间
);
}
return $dataList;
}
phpexcel导入数据库 基于thinkphp3.2的更多相关文章
- ThinkPhp3.2.3 使用phpExcel导入数据
public function uploadExcel(){ if (!empty($_FILES)){ $upload = new \Think\Upload(); // 实例化上传类 $uploa ...
- thinkphp phpexcel导入
上次做了一个基于tp3.2.3的phpexcel导出,这次是phpexcel导入,准备材料phpexcel(不知道下载地址的查看我上一篇博文),虽说是基于thinkphp3.2.3来的,也只不过是引入 ...
- Thinkphp 用PHPExcel 导入Excel
搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有P ...
- [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- (一)熟悉执行流程——基于ThinkPHP3.2的内容管理框架OneThink学习
ThinkPHP作为国内具有代表性的PHP框架,经过多年的发展,受到越来越多公司与开发者的青睐.我也在忙里偷闲中抽出部分时间,来学习这个优秀的框架.在开始学习这个框架时,最好通过实例来学习,更容易结合 ...
- 使用thinkphp框架实现Excel导入数据库
之前讲过php实现Excel导出数据库的随笔,链接:https://www.cnblogs.com/nuanai/p/6727711.html 之前的项目用到较多的就是Excel导出,现在用到了Exc ...
- phpexcel导入数据出现PHPExcel_RichText Object解决办法
在导入excel的时候会出现异常情况,有的问题出现PHPExcel_RichText object,错误代码如下 PHPExcel_RichText Object ( [_richTextElemen ...
- PHPExcel 导入Excel数据 (导出下一篇我们继续讲解)
一:使用composer下载 phpoffice/phpexcel 或者直接下载安装包 composer require phpoffice/phpexcel 二 1:导入数据 原理:读取文件,获取文 ...
- 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
随机推荐
- PHP 遍历文件目录
/********************** 一个简单的目录递归函数 第一种实现办法:用dir返回对象 ***********************/ function tree($directo ...
- 使用wampserver安装Composer的注意事项
http://getcomposer.org/Composer-Setup.exe 修改C:\wamp\bin\php\php5.3.10中php.ini中的配置 在php.ini中开启php_ope ...
- jQuery的文档操作方法
jQuery 文档操作方法 这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html(). 方法 描述 addClass() 向匹配的元素添加指定的类名. after() 在匹配的元素之 ...
- nginx日志格式含义
- 三种排序算法python源码——冒泡排序、插入排序、选择排序
最近在学习python,用python实现几个简单的排序算法,一方面巩固一下数据结构的知识,另一方面加深一下python的简单语法. 冒泡排序算法的思路是对任意两个相邻的数据进行比较,每次将最小和最大 ...
- android82 启动Actvity和Activity的生命周期
package com.itheima.jump; import android.net.Uri; import android.os.Bundle; import android.app.Activ ...
- hdu2002
import java.util.*;class Main{public static void main(String args[]){Scanner cin=new Scanner(System. ...
- 11.10 noip模拟试题
1.第K小数 (number.cpp/c/pas) [问题描述] 有两个正整数数列,元素个数分别为N和M.从两个数列中分别任取一个数 相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少 ...
- 大数据应用:五大地区喜新厌旧游戏APP类别之比较与分析
今天,我们来分享点不一样的资讯.....游戏APP之喜新厌旧排行榜!! 前阵子笔者开发了一套系统可以用来收集亚洲五大地区上架APP的每日排名信息,希望观察出五大地区在APP上的喜好和使用程度之间的相异 ...
- 服务器端PHP多进程编程
待更新 版权声明:本文为博主原创文章,未经博主允许不得转载.