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 ...
随机推荐
- mvc中RedirectToAction()如何传参?
今天在做一个功能的时,使用RedirectToAction()需要从这里传几个参数,从网上查了一下,这样解决.真好. Return RedirectToAction("Index" ...
- C++异步编程资料汇集贴
C++异步编程 http://www.cnblogs.com/zjjcy/archive/2012/03/18/2404214.htmlhttp://www.cnblogs.com/zjjcy/arc ...
- MySQL命令行导入导出sql文件
linux下 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构(常用):mysqldump -u用户名 -p密码 数据库名 > 数据库名. ...
- 并发包java.util.concurrent.locks.Lock
** * * @描述: Lock比传统线程模型中的synchronized方式更加面向对象.与生活中的锁类似,锁本身也应该是一个对象,两个线程执行的代码片段要实现同步互排的效果 * 它们必须用同一个L ...
- ZT 头文件包含其实是一想很烦琐的工作 第一个原则应该是,如果可以不包含头文件
当出现访问类的函数或者需要确定类大小的时候,才需要用头文件(使用其类定义) http://blog.csdn.net/clever101/article/details/4751717 看到这个 ...
- python入门9 条件语句
条件语句: if 条件为真: 执行语句块 (执行完结束不执行elif,else) elif 条件为真: 执行语句块 (执行完结束不执行else) else: 执行语句块 #coding:utf-8 # ...
- IOS VLC (第三方音频)的使用
使用注意 ● 注意点 ● 存放VLC的文件夹名不要有空格 ● 一旦执行过编译脚本sh,就别再修改存放VLC的文件夹名 编译 ● 打开最外层的工作空间 选择真机运行 编译 ● 一些简单的示例程序 集 ...
- E. XOR and Favorite Number
题意:很多询问,求每个询问下,有多少个区间,异或=k. 分析:异或也有前缀和.[L,R] = pre[R] ^ pre[L-1]: 莫队算法:是莫涛队长发明的,一种改良版的暴力离线算法. 首先将问题重 ...
- python time模块计算程序耗时
import time start = time.clock() end = time.clock() consume_time = end - start
- 一篇博客:分类模型的 Loss 为什么使用 cross entropy 而不是 classification error 或 squared error
https://zhuanlan.zhihu.com/p/26268559 分类问题的目标变量是离散的,而回归是连续的数值. 分类问题,都用 onehot + cross entropy traini ...