EasyUi通过OCUpload上传及POI上传 实现导入xls表格功能
Easyui上传文件案例
第一步:要想使用OCUpload首先前端需要导入js包
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.ocupload-1.1.2.js"></script>
第二步:提供一个上传按钮(本案例用的EasyUi框架)
var toolbar = [{
id: 'button-edit',
text: '修改',
iconCls: 'icon-edit',
handler: doView
}, {
id: 'button-import',
text: '导入',
iconCls: 'icon-redo'
];
第三步:提供按钮事件
$(function() {
$('#button-import').upload({
action: '${pageContext.request.contextPath}/upLoad.action',
name: 'areaFile',
onComplete: function(data) {
alert(data);
}
});
});
第四步:写controller层
@Controller
@ParentPackage("struts-default")
@Namespace("/")
@Scope("prototype")
public class AreaAction extends ActionSupport implements ModelDriven<Area> {
private Area model = new Area();
@Resource
private AreaService areaservice;
@Action(value="areaAction_importXls")
public String importXls() throws IOException{
String flag = "1";//1-成功;0-失败
try {
//1.使用workbook获取整个excel
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(areaFile));
//2.使用workbook获取某个sheet页
HSSFSheet sheet = wb.getSheetAt(0);
//3.遍历sheet页获取row行
List<Area> list = new ArrayList<Area>();
for(Row row : sheet){
//3.1跳过第一行标题行
int rowNum = row.getRowNum();
if(0 == rowNum){
continue;//跳过本次循环,进入下一次循环
}
//4.使用row获取cell单元格
String id = row.getCell(0).getStringCellValue();
String province = row.getCell(1).getStringCellValue();
String city = row.getCell(2).getStringCellValue();
String district = row.getCell(3).getStringCellValue();
String postcode = row.getCell(4).getStringCellValue();
//5.创建area封装数据
Area area = new Area();
area.setId(id);
area.setProvince(province);
area.setCity(city);
area.setDistrict(district);
area.setPostcode(postcode);
province = province.substring(0, province.length() - 1);
city = city.substring(0, city.length() - 1);
district = district.substring(0, district.length() - 1);
String tempStr = province+city+district;//河北石家庄开发
String[] headByString = PinYin4jUtils.getHeadByString(tempStr);//[H,B,S,J,Z,K,F]
String shortcode = StringUtils.join(headByString, "");
area.setShortcode(shortcode);
//2.城市码
String citycode = PinYin4jUtils.hanziToPinyin(city,"");
area.setCitycode(citycode);
list.add(area);
}
//6.批量保存数据
areaService.batchSave(list);
} catch (IOException e) {
e.printStackTrace();
flag = "0";
}
//7.使用response将flag返回
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
ServletActionContext.getResponse().getWriter().print(flag);
return NONE;
}
}
第五步:创建service层的save方法实现保存。
@Service
@Transactional
public class AreaServiceimp implements AreaService {
@Resource
private AreaDao areadao;
@Override
public void add(ArrayList<Area> list) {
for (Area area : list) {
areadao.save(area);
}
}
}
第六步:AreaDao创建(本测试案例用到的持久层是JPA)
public interface AreaDao extends JpaRepository<Area, String>, JpaSpecificationExecutor<Area> { }
第七步:修改jsp页面,如果上传成功提示用户上传成功、如果失败就提示上传失败。
<script>
$(function() {
$('#button-import').upload({
action: '${pageContext.request.contextPath}/upLoad.action',
name: 'areaFile',
onComplete: function(data) {
if("1" == data) {
$.messager.confirm('提示信息', '上传成功', 'info');
} else {
$.messager.alert('提示信息', '上传失败', 'error');
}
}
})
})
</script>
开始测试:
EasyUi通过OCUpload上传及POI上传 实现导入xls表格功能的更多相关文章
- EasyUi通过POI 实现导出xls表格功能
Spring +EasyUi+Spring Jpa(持久层) EasyUi通过POI 实现导出xls表格功能 EasyUi界面: 点击导出按钮实现数据导入到xls表格中 第一步:修改按钮事件: @Co ...
- golang学习之beego框架配合easyui实现增删改查及图片上传
golang学习之beego框架配合easyui实现增删改查及图片上传 demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DO ...
- POI上传Excel的小问题处理
package com.platform.utils.excel; import com.platform.utils.RRException; import org.springframework. ...
- hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images
hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images, 本例子主要是使用HTML5 的File API,建立一個可存取到该file的url, 一个空的img标签,ID为img0,把 ...
- 【Java EE 学习 22 上】【文件上传】【目录打散】【文件重命名】
1.文件上传概述 (1)使用<input type="file">的方式来声明一个文件域. (2)表单提交方式一定要是post方式才行 (3)表单属性enctype 默 ...
- 将项目上传到git上,并在测试服务器上运行
上周我完成了我人生的第一个项目,并将它上传到gitHub上完成了团队合作.下面我将用倒叙的方法记录下,我的这段经历. 星期五,项目完成准备上传gitHub启动测试服务器. 1.git clone 项目 ...
- 我需要在Web上完成一个图片上传的功能
我需要在Web上完成一个图片上传的功能. 这个页面需要能从手机中选择图片上传. 首先,这个页面是从微信上面触发的,所以修改了微信的的入口地址,增加了身份识别号作为传参. 跳转到页面的时候,页面先检查身 ...
- 打造 html5 文件上传组件,实现进度显示及拖拽上传,支持秒传+分片上传+断点续传,兼容IE6+及其它标准浏览器
老早就注册了博客园帐号,昨天才发现,连博客都没开,Github也是一样,深觉惭愧,赶紧潜个水压压惊`(*∩_∩*)′ 言归正传.大概许多人都会用到文件上传的功能,上传的库貌似也不少,比如(jQuery ...
- 百度开源富文本编辑器 UEditor配置:图片上传和文件上传独立使用方法
使用UEditor编辑器自带的插件实现图片上传和文件上传功能,这里通过配置UEditor单独使用其内置的第三方插件swfupload来实现图片和文件的上传,通过对UEditor配置轻松实现图片批量上传 ...
随机推荐
- JsonDataObjects 简单实用
下载地址https://github.com/ahausladen/JsonDataObjects Simple example var Obj: TJsonObject; begin Obj := ...
- Node.js之npm使用
1.使用国内镜像 本人window8系统安装node.js之后,使用npm的命令安装Express一直失败: npm install express -g (以上命令会将 Express 框架安装在当 ...
- C++了解free和delete
(转自:http://www.cnblogs.com/mrye/archive/2012/09/01/2667079.html) void MyMethod1() { using namesp ...
- 万恶之源 - Python开发规范
开发规范 什么是开发规范?为什么要有开发规范呢? 你现在包括之前写的一些程序,所谓的'项目',都是在一个py文件下完成的,代码量撑死也就几百行,你认为没问题,挺好.但是真正的后端开发的项目,系统等,少 ...
- SaltStack 数据系统 Grains Pillar
grains 先来一个很好用的命令 # salt '*' grains.items \\基本上输出了所有你想要的信息 192.168.100.138: ---------- SSDs: biosrel ...
- Solutions_issues in pip
pip fails ssl verification Solution: $ python -m pip <command> --trusted-host files.pythonhost ...
- windows server 2008 R2如何更换系统界面语言/中文换英文
下面我们来讲解一下如何将中文系统转化成日文.韩文.英文等其它语言界面的系统. 以windows server 2008 R2系统中文变英文为例: 1.到微软官方下载:Windows Server 20 ...
- Jenkins pipeline 语法详解
原文地址http://www.cnblogs.com/fengjian2016/p/8227532.html pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节 ...
- 胸片和CT断层图像是怎么来的?
本文作者系医科大学青年教师,关注公众号"计算机视觉life"菜单栏回复"医学" 进群交流 如何得到CT断层图像? 相信小伙伴体检的时候都拍过胸片,假如哪个不幸的 ...
- 【cocos2d-js官方文档】事件分发监听机制(摘录)
简介 游戏开发中一个很重要的功能就是交互,如果没有与用户的交互,那么游戏将变成动画,而处理用户交互就需要使用事件监听器了. 总概: 事件监听器(cc.EventListener) 封装用户的事件处理逻 ...