导入按钮

<button class="btn btn-info" type="button" id="import" data-toggle="modal" data-target="#myModal">导入</button>

模态框

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">导入</h4>
</div>
<div class="modal-body">
<div>导入格式如下</div>
<table class="table table-bordered">
<tr>
<th>编号</th>
<th>姓名</th>
<th>手机号</th>
<th>性别</th>
<th>出生日期</th>
</tr>
<tr>
<td>1</td>
<td>小李</td>
<td>18888888888</td>
<td>男</td>
<td>2013年12月20日</td>
</tr>
</table> <form action="#" method="post" id="file-form" enctype="multipart/form-data">
<div class="form-group">
<label class=" control-label" style="width:85px;">上传文件<sup>*</sup></label>
<div class="">
<input type="file" name="excel" style="display:block;" />
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" id="file-import">确定</button>
<!--<button type="button" class="btn btn-danger" id="editUser">确定</button>-->
</div>
</div>
</div>
</div>

弹出模态框,选择文件,点击确定

//导入
$('#file-import').on('click',function(){
var fileFlag = false;
fileFlag = $("input[name='excel']").val();
if(!fileFlag) {
alert( '请选择文件!');
return false;
}
// 创建
var form_data = new FormData();
// 获取文件
var file_data = $("input[name='excel']").prop("files")[0];
// 把所以表单信息
form_data.append("excel", file_data);
$.ajax({
url:'/Admin/import',
type:'post',
dataType:'json',
processData: false, // 注意:让jQuery不要处理数据
contentType: false, // 注意:让jQuery不要设置contentType
data: form_data,
success:function(info){
console.log(info);
alert(info.msg);
if(info.code == 1){
window.location.reload();
}
}
})
});

PHP控制器

    /**
* 导入
*/
public function import(){
$name = substr(strrchr($_FILES['excel']['name'], '.'), 1);
$file = $_FILES['excel']['tmp_name'];
$data = $this->excel($name,$file);
if(!$data){
return $this->ajaxReturn(['code'=>-1,'msg'=>'文件格式不正确!']);
}
foreach($data as &$v){
$dateArr = date_parse_from_format('Y年m月d日',$v['time']);
if(!$dateArr['year']){
$v['time'] = '';
continue;
}
$v['time'] = $dateArr['year'].'-'.$dateArr['month'].'-'.$dateArr['day'];
}
$allID = M('user')->addAll($data);
if($allID){
return $this->ajaxReturn(['code'=>1,'msg'=>'导入成功']);
}
$this->ajaxReturn(['code'=>-2,'msg'=>'导入失败']);
} /**
* 读表格信息
*/
public function excel($name,$files){
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
import("Common.Vendor.Excel.PHPExcel");
//创建PHPExcel对象,注意,不能少了\
$PHPExcel=new \PHPExcel();
if ($name == 'xls') {
//如果excel文件后缀名为.xls,导入这个类
import("Common.Vendor.Excel.PHPExcel.Reader.Excel5");
$PHPReader=new \PHPExcel_Reader_Excel5();
}
if ($name == 'xlsx') {
//如果excel文件后缀名为.xlsx,导入这下类
import("Common.Vendor.Excel.PHPExcel.Reader.Excel2007");
$PHPReader=new \PHPExcel_Reader_Excel2007();
} //载入文件
$PHPExcel=$PHPReader->load($files);
$currentSheet=$PHPExcel->getSheet(0);
$allColumn=$currentSheet->getHighestColumn();
$allRow=$currentSheet->getHighestRow();
//循环读取数据
for($currentRow=2;$currentRow<=$allRow;$currentRow++){
$arr['name'] = $PHPExcel->getActiveSheet()->getCell('B'.$currentRow)->getValue();
$arr['mobile'] = $PHPExcel->getActiveSheet()->getCell('C'.$currentRow)->getValue();
$arr['sex'] = $PHPExcel->getActiveSheet()->getCell('D'.$currentRow)->getValue();
$arr['time'] = gmdate("Y年m月d日",\PHPExcel_Shared_Date::ExcelToPHP($PHPExcel->getActiveSheet()->getCell('F'.$currentRow)->getValue()));
$data[] =$arr;
}
return $data;
}

tp3.2和Bootstrap模态框导入excel表格数据的更多相关文章

  1. Vue3实现动态导入Excel表格数据

    1.  前言 在开发工作过程中,我们会遇到各种各样的表格数据导入,大部分我们的解决方案:提供一个模板前端进行下载,然后按照这个模板要求进行数据填充,最后上传导入,这是其中一种解决方案.个人认为还有另外 ...

  2. bootstrap 模态框动态加载数据

    .页面中添加modal <!-- 模态框(Modal) --> <div class="modal fade" id="showModal" ...

  3. java导入Excel表格数据

    首先导入Excel数据需要几样东西 第一需要两个依赖包,这里直接是在pom注入依赖 <!--excel--> <dependency> <groupId>org.a ...

  4. poi导入excel表格数据到数据库的时候,对出生日期的校验

    出生日期格式为8位数字的字符串 如:yyyyMMdd 规则:yyyy大于1900并小于当前时间,月.日 按日期规则校验 //解决读过来的字符串显示为科学计数法问题 BigDecimal bd = ne ...

  5. js控制Bootstrap 模态框(Modal)插件

    js控制Bootstrap 模态框(Modal)插件 http://www.cnblogs.com/zzjeny/p/5564400.html

  6. Bootstrap模态框按钮

    1.触发模态框弹窗的代码 这里复制了一段Bootstrap模态框的代码 <h2>创建模态框(Modal)</h2> <!-- 按钮触发模态框 --> <but ...

  7. 解决bootstrap模态框内输入框无法获取焦点

    bootstrap 模态框中的input标签在某些情况下会无法获取焦点. 最终解决方法:去除模态框的 tabindex="-1" 属性即可

  8. Bootstrap 模态框(Modal)插件

    原文链接:http://www.runoob.com/bootstrap/bootstrap-modal-plugin.html Bootstrap 模态框(Modal)插件 模态框(Modal)是覆 ...

  9. Bootstrap 模态框在用户点击背景空白处时会自动关闭

    问题: Bootstrap 模态框在用户点击背景空白处时,会自动关闭. 解决方法: 在HTML页面中编写模态框时,在div初始化时添加属性 aria-hidden=”true” data-backdr ...

随机推荐

  1. 反射报错java.lang.IllegalArgumentException: wrong number of arguments

    class Person{ private String name ; private String sex ; public Person(){ System.out.println("c ...

  2. Shell 编程备忘

    变量使用 1. 定义变量: a=1 变量名=值 等号两端不能有空格 2. 变量值为数字或字符串,字符串 "this is adeom" 'this is a demo',双引号中可 ...

  3. xml php 解析

    JSON作为数据交换可以说已经成为了一种事实上的标准,但是前几年和它对应的xml虽然说用的越来越少,但是我感觉还是有他可以应用的地方. json更偏重于程序员来使用和解读,而xml则更适合用户来使用和 ...

  4. Linux下部署redis以及相关简介

    什么是redis? Redis是一个高性能的key-value数据库.key-value分布式存储系统查询速度快.存放数据量大.支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询.key ...

  5. Excel工资表

  6. TcpListerner、TcpClient 、邮件发送MailMessage、SmtpClient类

    一.服务端 TcpListener server = );//定义监听器 server.Start();//启动监听器 ]; //创建一个容器用于接受数据 string data = null; wh ...

  7. Java 运算符(引用和对象)

    1. 算数运算符 就是+.-.*./.%.++.--这些,没什么好说的,稍微强调下自加,自减: 前缀自增自减法(++i,--i): 先进行自增或者自减运算,再进行表达式运算. 后缀自增自减法(i++, ...

  8. scala当中的类

    1.类的定义与创建 创建一个scala class来定义我们的一个类.类当中可以定义各种属性或者方法,或者函数都可以     class Person {       //定义一个属性,叫做name的 ...

  9. BZOJ4008:[HNOI2015]亚瑟王(DP,概率期望)

    Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟王是一个 ...

  10. 【【模板】严格次小生成树[BJWC2010]】

    树上的路径怎么能没有树剖 显然,次小生成树和最小生成树只在一条边上有差距,于是我们就可以枚举这一条边,将所有边加入最小生成树,之后再来从这些并不是那么小的生成树中找到那个最小的 我们往最小生成树里加入 ...