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 ...
随机推荐
- windows下快速修改host文件
windows下快速修改host文件 win+r 输入 notepad c:\Windows\System32\drivers\etc\hosts
- android device ID获取
Android Device ID是Android用户在Google认证过手机的设备唯一标识,当然国内很多Android手机没有经过Google认证,所以一般没有Google官方Android de ...
- git rebase 和 git merge 总结
git merge 和 git rebase 都是用于合并分支,但二者是存在区别的. 在使用时,记住以下两点: 当你从 remote 去 pull 的时候,永远使用 rebase(除了一个例外) 当你 ...
- JPA 使用 Specification 复杂查询和 Criteria 查询
转自:https://blog.wuwii.com/jpa-specification.html 前言 JPA 给我们提供了基础的 CURD 的功能,并且用起来也是特别的方便,基本都是一行代码完成各种 ...
- 【NLP_Stanford课堂】语言模型1
一.语言模型 旨在:给一个句子或一组词计算一个联合概率 作用: 机器翻译:用以区分翻译结果的好坏 拼写校正:某一个拼错的单词是这个单词的概率更大,所以校正 语音识别:语音识别出来是这个句子的概率更大 ...
- Python类三种方法,函数传参,类与实例变量(一)
1 Python的函数传递: 首先所有的变量都可以理解为内存中一个对象的'引用' a = 1 def func(a): a = 2 func(a) print(a) # 1 a = 1 def fun ...
- WCF 的优势和特点
版权声明:本文为博主原创文章,未经博主允许不得转载. 一.理解面向服务(Service-Oriented-Architecture) 是指为了解决在Internet环境下业务集成的需要,通过连接 ...
- Bootstrap后台管理模板调研
Bootstrap后台管理模板调研 SB Admin 2(推荐) SB Admin 2是一款开源的基于Bootstrap搭建的后台管理模板,简约,易用.没有复杂的组件和花炫的设计,很质朴,但较为美观. ...
- Selenium2学习(四)-- xpath定位
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...
- ORACLE_FUNCTION
FUNCTION: DEFINE:函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数. 1.basic syntax create [or replace] function f ...