Excel导入功能(Ajaxfileupload)
前言:
前端采用Easyui+Ajaxfileupload实现
后端采用springmvc框架,其中把解析xml封装成了一个jar包,直接调用即可 准备:
前端需要导入(easyui导入js省略,自行导入即可)
Ajaxfileupload.js 下载地址:http://files.cnblogs.com/files/holdon521/ajaxfileupload.zip
后端需要导入:
ht-excel.jar 下载地址:http://files.cnblogs.com/files/holdon521/ht-excel.zip
前端代码:
<div class="easyui-layout" fit="true" style="overflow-y:auto;">
<div class="ht-info">
<div class="ht-tip icon-tip"></div>
<div>电视台类型导入</div>
</div>
<div>
<form id="uploadform" action="" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>请选择文件:</td>
<td>
<input type="file" name="file" id="file" ></input>
</td>
</tr>
</table>
</form>
</div>
<div region="south" border="false" style="text-align:right;height:30px;line-height:30px;background:#EAF2FF;">
<a href="#" onclick="ajaxFileUploadForType()"class="easyui-linkbutton" icon="icon-ok" >提交</a>
<a class="easyui-linkbutton" icon="icon-cancel" href="javascript:$ht.win.close('uploadTvType')">取消</a>
</div>
</div>
<script type="text/javascript">
function ajaxFileUploadForType(){
if($('input[type="file"]').val()!=""){
var extend=$('input[type="file"]').val().substr($('input[type="file"]').val().lastIndexOf(".")+1);
if("xls|xlsx".indexOf(extend+"|")==-1){
flagPic=false;
$.messager.alert("提示信息","选择的文件必须是EXCEL文件,请确认!");
}else{
$.ajaxFileUpload
(
{
url: 'uploadTvType', //用于文件上传的服务器端请求地址
secureuri: false, //是否需要安全协议,一般设置为false
fileElementId: 'file', //文件上传域的ID
dataType: 'text', //返回值类型 一般设置为json
success: function (responseJSON) //服务器成功响应处理函数
{
if(responseJSON == "0"){
$.messager.alert('提示信息','电视台类型导入成功!');
$ht.win.close('uploadTvType');
$ht.grid.reload('gridTvType');
}else if(responseJSON == "2"){
$.messager.alert('提示信息','没有符合要求的数据或要导入的数据,在数据库中已经存在,请确认!');
}else if(responseJSON == "error"){
$.messager.alert('提示信息','电视台类型导入失败!');
}else {
$.messager.alert('提示信息',responseJSON);
$ht.grid.reload('gridTvType');
}
},
error: function (data, status, e)//服务器响应失败处理函数
{
$.messager.alert('提示信息','电视台类型导入失败!');
}
}
)
}
}else{
$.messager.alert("提示信息","请选EXCEL文件!");
}
}
</script>
后端代码:
注:实体类对应Excel里列名称,可以设置非空校验(如果为空,这默认该行数据获取不到),重写父方法即可,以下代码注释重写了
import java.util.List;
import com.sh.excelUtil.model.BaseModel;
import com.sh.excelUtil.persistence.FieldNote;
public class TvTypeBean extends BaseModel implements java.io.Serializable{
private static final long serialVersionUID = -5217032731630006972L;
@FieldNote(logicalName = "终端类型",physicalName = "terminalType",notNull = true)
private String terminalType;
@FieldNote(logicalName = "分类编码",physicalName = "tvTypeCode",notNull = true)
private String tvTypeCode;
@FieldNote(logicalName = "分类名称",physicalName = "tvTypeName",notNull = true)
private String tvTypeName;
@FieldNote(logicalName = "分类缩写名称",physicalName = "tvTypeAbridgeName",notNull = true)
private String tvTypeAbridgeName;
@FieldNote(logicalName = "排序字段",physicalName = "orderBy")
private String orderBy;
@Override
public List<Object> check(BaseModel model, List<Object> valueList){
// valueList = super.check(model,valueList);
//TODO:实现非空时的数据检验
return valueList;
}
/**
* @return the terminalType
*/
public String getTerminalType() {
return terminalType;
}
/**
* @param terminalType the terminalType to set
*/
public void setTerminalType(String terminalType) {
this.terminalType = terminalType;
}
/**
* @return the tvTypeCode
*/
public String getTvTypeCode() {
return tvTypeCode;
}
/**
* @param tvTypeCode the tvTypeCode to set
*/
public void setTvTypeCode(String tvTypeCode) {
this.tvTypeCode = tvTypeCode;
}
/**
* @return the tvTypeName
*/
public String getTvTypeName() {
return tvTypeName;
}
/**
* @param tvTypeName the tvTypeName to set
*/
public void setTvTypeName(String tvTypeName) {
this.tvTypeName = tvTypeName;
}
/**
* @return the tvTypeAbridgeName
*/
public String getTvTypeAbridgeName() {
return tvTypeAbridgeName;
}
/**
* @param tvTypeAbridgeName the tvTypeAbridgeName to set
*/
public void setTvTypeAbridgeName(String tvTypeAbridgeName) {
this.tvTypeAbridgeName = tvTypeAbridgeName;
}
/**
* @return the orderBy
*/
public String getOrderBy() {
return orderBy;
}
/**
* @param orderBy the orderBy to set
*/
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
}
import java.util.List;
import com.sh.excelUtil.excel.POIExcelUtil;
@Controller
@RequestMapping("/channelinfomanage")
public class ChannelInfoManageController{
@RequestMapping("/uploadTvType")
public void uploadTvType(HttpServletRequest request,
@RequestParam("file") MultipartFile file,
HttpServletResponse response) throws Exception {
//该对象为jar中工具类
POIExcelUtil poi = new POIExcelUtil();
poi.impExcelFile(fileName, new TvTypeBean(),inputStream);
List<Object> valueList = poi.getValueList();
if(valueList!=null && valueList.size()>0){
for(int i =0;i<valueList.size();i++){
TvTypeBean bean = (TvTypeBean)valueList.get(i);
//输出字段数据,并插入到相应的表中,省略
System.out.println(bean.getTvTypeCode()+。。。。。。。);
}
}
} }
}
Excel导入功能(Ajaxfileupload)的更多相关文章
- 解析大型.NET ERP系统 设计通用Microsoft Excel导入功能
做企业管理软件很难避免与Microsoft Excel打交道,常常是软件做好了,客户要求说再做一个Excel导入功能.导入Excel数据的功能的难度不大,从Excel列数据栏位的取值,验证值,再导入到 ...
- java利用jxl实现Excel导入功能
本次项目实践基于Spring+SpringMvc+MyBatis框架,简单实现了Excel模板导出.和Excel批量导入的功能.实现过程如下:. 1.maven导入所需jar包 <depende ...
- 后端Springboot前端VUE实现Excel导入功能
功能描述:做的是物联网的项目,Excel导入实现的功能是将Excel中的数据批量的导入AEP系统,再导入我们系统中.目前已经完成该功能,前端还会添加进度条优化.对于导入导出功能,推荐这个Git:htt ...
- Excel导入功能
一:前端 <t:dgToolBar title="Excel题库导入" icon="icon-search" onclick="question ...
- Java中Excel导入功能实现、excel导入公共方法_POI -
这是一个思路希望能帮助到大家:如果大家有更好的解决方法希望分享出来 公司导入是这样做的 每个到导入的地方 @Override public List<DataImportMessage> ...
- Java Controller下兼容xls和xlsx且可识别合并单元格的excel导入功能
1.工具类,读取单元格数据的时候,如果当前单元格是合并单元格,会自动读取合并单元格的值 package com.shjh.core.util; import java.io.IOException; ...
- php Excel 导入功能
下载excel类地址 https://pan.baidu.com/s/19MqAHUn4RyZ5HEAChyC0jg 密码:mn58 本人用的thinkcmf框架 把类文件放在框架的类文件里面,下面 ...
- excel 导入功能
一:示例代码 //InputStream fis = new FileInputStream(tomcaturl+this.awardTask.getFileRoute());//可以通过上述方式获得 ...
- React + Antd开发模式下的Excel导入功能
具体js如下,配合的是antd里面的upload组件,使用的是xlsx插件 npm : npm install xlsx 插件链接: https://github.com/SheetJS/sheet ...
随机推荐
- twaver拓扑图通道组织图(百分比使用率/水槽)效果实现
功能介绍: 利用拓扑图实现:64条通道,根据每条通道是否承载业务,提供百分比展示 首先上图,功能效果如图: 废话不多,直接上代码: <!DOCTYPE html> <html> ...
- .NET开源工作流RoadFlow-表单设计-组织机构选择
组织机构选择即在表单中添加组织机构选择框. 选择范围: 1.发起者部门:只能在发起者同一个部门中选择. 2.处理者部门:只能在当前处理者同一个部门中选择. 3.自定义:自己指定一个选择范围. 选择类型 ...
- 转:ArcGIS提取面状道路中心线(转载)
1.首先把所有的面要素merge成一个要素 2.把merge后的数据转成线数据 3.此时转换后的线数据一定是闭合的,为了防止提取中心线失败(只提取出外围轮廓)我们在随意一个道路末端使用打断工具打一个开 ...
- Oracle 查看表占用的空间大小
select TABLE_NAME , num_rows * avg_row_len /1024/1024 AS KJfrom ALL_tables WHERE TABLE_NAME IN (sele ...
- windows下使用VNC进行远程连接
在 windows 电脑上安装 VNC,包含 VNC server 和 VNC viewer,如果仅需要被操控或操控他人,选择型下载安装 VNC server 或 VNC viewer 即可. 在需要 ...
- 再学UML-UML用例建模解析(三)
2. 编写用例文档 绘制用例图只是完成了用例建模最基本也是最简单的一步,用例建模的核心在于编写用例文档,用例文档又称为用例规约或用例描述.顾名思义,用例文档是用于描述用例的文档,每一个用例对应于一个用 ...
- RAC共享磁盘挂载工具
待更新: oracleasm: udev: 自己搭建个存储服务器:
- IOS 公司标示使用反向域名
1. 公司标示使用反向域名========================================正向域名 www.baidu.com 用来标示一台网络主机反向域名 cn.itcast.Myd ...
- Android(java)学习笔记21:Java异常处理机制
1. try....catch / try...catch...finally package cn.itcast_02; /* * 我们自己如何处理异常呢? * A:try...catch... ...
- 异常:org.hibernate.id.IdentifierGenerationException
在有关联关系的数据表中保存数据时,先保存一端,再保存多端的抛出的异常(此时不管一端,还是多端的对象都没有设置id,属性,也就是要保存的两个对象的id 属性为空.) org.hibernate.id.I ...