前言:
前端采用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)的更多相关文章

  1. 解析大型.NET ERP系统 设计通用Microsoft Excel导入功能

    做企业管理软件很难避免与Microsoft Excel打交道,常常是软件做好了,客户要求说再做一个Excel导入功能.导入Excel数据的功能的难度不大,从Excel列数据栏位的取值,验证值,再导入到 ...

  2. java利用jxl实现Excel导入功能

    本次项目实践基于Spring+SpringMvc+MyBatis框架,简单实现了Excel模板导出.和Excel批量导入的功能.实现过程如下:. 1.maven导入所需jar包 <depende ...

  3. 后端Springboot前端VUE实现Excel导入功能

    功能描述:做的是物联网的项目,Excel导入实现的功能是将Excel中的数据批量的导入AEP系统,再导入我们系统中.目前已经完成该功能,前端还会添加进度条优化.对于导入导出功能,推荐这个Git:htt ...

  4. Excel导入功能

    一:前端 <t:dgToolBar title="Excel题库导入" icon="icon-search" onclick="question ...

  5. Java中Excel导入功能实现、excel导入公共方法_POI -

    这是一个思路希望能帮助到大家:如果大家有更好的解决方法希望分享出来 公司导入是这样做的 每个到导入的地方 @Override public List<DataImportMessage> ...

  6. Java Controller下兼容xls和xlsx且可识别合并单元格的excel导入功能

    1.工具类,读取单元格数据的时候,如果当前单元格是合并单元格,会自动读取合并单元格的值 package com.shjh.core.util; import java.io.IOException; ...

  7. php Excel 导入功能

    下载excel类地址 https://pan.baidu.com/s/19MqAHUn4RyZ5HEAChyC0jg  密码:mn58 本人用的thinkcmf框架 把类文件放在框架的类文件里面,下面 ...

  8. excel 导入功能

    一:示例代码 //InputStream fis = new FileInputStream(tomcaturl+this.awardTask.getFileRoute());//可以通过上述方式获得 ...

  9. React + Antd开发模式下的Excel导入功能

    具体js如下,配合的是antd里面的upload组件,使用的是xlsx插件 npm :  npm install xlsx 插件链接: https://github.com/SheetJS/sheet ...

随机推荐

  1. ASP.NET安全[开发ASP.NET MVC应用程序时值得注意的安全问题](转)

    概述 安全在web领域是一个永远都不会过时的话题,今天我们就来看一看一些在开发ASP.NET MVC应用程序时一些值得我们注意的安全问题.本篇主要包括以下几个内容 : 认证 授权 XSS跨站脚本攻击 ...

  2. hdu 1087 最大递增和

    思路和LIS差不多,dp[i]为i结尾最大值 #include <iostream> #include <string> #include <cstring> #i ...

  3. 字符串(1)——Detect Capital

    Given a word, you need to judge whether the usage of capitals in it is right or not. We define the u ...

  4. Csharp and Vbscript: Encryption/Decryption Functional

      1 /// <summary>   2     /// 塗聚文   3     /// 20130621   4     /// 自定义字符串加密解密   5     /// < ...

  5. 使用Anaconda管理环境

    Anaconda指的是一个开源的python发行版本,其包含了conda.Python等180多个科学包及其依赖项. Anaconda是一个开源的包.环境管理器,可以用于在同一个机器上安装不同版本的软 ...

  6. scss-@mixin

    @mixin指令用于定义混入,它包括任选的变量和参数中的mixin名称后. scss简单示例: @mixin style { .cont{ color: #77C1EF; } } @include s ...

  7. CSS深入理解学习笔记之padding

    1.padding与容器尺寸之间的关系 对于block水平元素:①padding值暴走,一定会影响尺寸:②width非auto,padding影响尺寸:③width为auto或box-sizing为b ...

  8. vuejs+axios发送请求

    Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios  ...

  9. arcgis版接合图表5.2 免费软件,支持国家2000坐标系,ArcGIS10.0,ArcGIS10.1,ArcGIS10.2都可以使用

    下载地址:http://files.cnblogs.com/gisoracle/jionmap52.rar 1.      国家2000,西安80,北京54.坐标系的接合图表生成.根据经纬度范围,坐标 ...

  10. 我的Android开发之路——ListView的使用

    在Android开发过程中,遇到需要列表显示的时候,这时候就会用到listview. 1.首先创建一个ListViewTest项目,选择empty activity类型.修改activity_main ...