java公共excel导入_Java实现Excel的导入功能
上次项目开发过程中需要实现通过excel文件进行导入。我才用了WorkbookFactory方法,因为导入的数据需要处理,所以在程序中我使用List对读入的数据进行了分类。所以大家对数据处理可以不用关心,把重点放在WorkbookFactory的使用方法上。今天把这个方法分享给大家,话不多说,直接上代码。
java端代码
public String importFile(HttpServletRequest request,HttpServletResponse response){
Map returnMap = new HashMap();
//需要处理的数据
List> disposeList = new ArrayList>();
//不需要处理的数据
List> noDisposeList = new ArrayList>();
boolean errorFlag = false;
try {
//SpringMVC 中处理表单上传的方法
MultipartResolver resolver=new CommonsMultipartResolver(request
.getSession().getServletContext());
MultipartHttpServletRequest multipartRequest = resolver
.resolveMultipart(request);
Iterator iter=multipartRequest.getFileNames();
MultipartFile mf = null;
while (iter.hasNext()) {
mf=multipartRequest.getFile(iter.next().toString());
}
org.apache.poi.ss.usermodel.Workbook wb = WorkbookFactory.create(mf.getInputStream());
// 创建临时目录,存放此次上传的文件,此处可以直接给一个默认路径
String tempFolder = getTempFolder("wtgl");
File file = new File(tempFolder);
file.mkdir();
mf.transferTo(new File(tempFolder+File.separator+mf.getOriginalFilename()));
// 生成临时文件
//tbDataTaskServiceImpl.scSjData(tempFolder, mf.getOriginalFilename());
Sheet sheet = wb.getSheetAt(0);
Row row = null;
/**这里是关键点,对excel以行为单位取出每一个单元格中的值。补充一点,
*如果excel表中的单元格被单击过,但是没有值会取出null,但是如果单元格没有
*值也没有被点击过此时或报错。
*/
for (int i=sheet.getFirstRowNum()+1; i
Map disposeMap = new LinkedHashMap();
Map noDisposeMap = new LinkedHashMap();
row= sheet.getRow(i);
if(row!=null){
Cell col1 = row.getCell(0);
Cell col2 = row.getCell(1);
Cell col3 = row.getCell(2);
Cell col4 = row.getCell(3);
Cell col5 = row.getCell(4);
Cell col6 = row.getCell(5);
Cell col7 = row.getCell(6);
Cell col8 = row.getCell(7);
Cell col9 = row.getCell(8);
noDisposeMap.put("WTBH", col1.toString());
noDisposeMap.put("WTZT", col2.toString());
//noDisposeMap.put("ZPSJ_DATA", col6.toString());
noDisposeMap.put("CLSJ_DATA", col8.toString());
noDisposeMap.put("CLRMC", col9.toString());
disposeMap.put("SBDS", col3.toString());
disposeMap.put("YJCD", col4.toString());
disposeMap.put("LCHJ", col5.toString());
disposeMap.put("CLJG", col7.toString());
}
noDisposeList.add(noDisposeMap);
disposeList.add(disposeMap);
}
Boolean result = commonService.importWtIntoSql(disposeList, noDisposeList);
if(result){
returnMap.put("result", true);
returnMap.put("message", "123456");
}else{
returnMap.put("result", false);
}
} catch (Exception e) {
errorFlag = true;
e.printStackTrace();
returnMap.put("result", false);
returnMap.put("message", "发生未知错误,上传失败。");
} finally {
String tempFolder = CommonUtils.getTempFolder("wtgl");
CommonUtils.deletefile(tempFolder);
}
if (errorFlag) {
// 解决平台service里报错导致错误信息无法返回到页面的问题
response.setContentType("text/xml;charset=UTF-8");
try {
response.getWriter().print(
JSONObject.fromObject(returnMap).toString());
} catch (IOException e1) {
e1.printStackTrace();
}
} else {
}
return JsonBinder.getJsonBinder().toJson(returnMap.get("result").toString());
}
}
/**
* 获取临时文件夹
*
* @return
*/
public static String getTempFolder(String filePath) {
return Platform.getPlatform().getBaseDir() + filePath
+ File.separator;
}
前端JS代码
function importFunction(){
importFile({
url: 'common/contCommon/importFile.do',
multiple: false,
beforeSend: function(file){
var h = document.body.scrollHeight + "px";
//实现弹窗选择文件页面
$("
.css({display:"block",'background-color':'#000000',
width:"100%",height:h,
'z-index':100000,
opacity:0.2})
.appendTo("body");
$("
"
").appendTo("body")
.css({display:"block",
'z-index':100000,
'position': 'fixed',
'background-color': '#FFFFFF',
left:($(document.body).outerWidth(true) - 190) / 2,
top:(document.body.clientHeight - 35) / 2,
padding: "25px 20px 52px 10px",
height: "25px"});
forbiddenBodyRightClick();
},
callback: function(res){
res = JSON.parse(res);
if(res.result){
$('.datagrid-mask-msg').remove();
$('.datagrid-mask').remove();
artDialog({content:'导入成功!',time:2.0});
queryGridData(param);
}else{
$('.datagrid-mask-msg').remove();
$('.datagrid-mask').remove();
artDialog({content:'导入失败!',time:2.0});
}
},
uploading: function(pre){
}
});
}
此处只是粘贴了主要代码,如果有什么不理解的可以留言,看到后会回复的。
PS:欢迎大家批评指正。
java公共excel导入_Java实现Excel的导入功能相关推荐
- java excel表格导入_java中excel表格导入实例
展开全部 需要32313133353236313431303231363533e59b9ee7ad9431333264623165导入jxl.jar (在网上可以下载,然后放到lib文件夹中) 开放分 ...
- java方法有excel实现_Java实现EXCEL操作(1)
Java实现EXCEL操作(1) 1.实现方法: 现在有三种方法去实现:jxl .poi . FastExcel:97~2003 在这里只讲poi实现方法.poi的包可以去Apache官网上去下载:h ...
- java拆分单元格_Java 拆分Excel单元格数据为多列
一.概述及使用工具 在Excel表格里面,可设置将单元格中的文本数据按分隔符拆分为多列,下面通过Java程序来介绍具体实现方法.这里使用Free Spire.XLS for Java(免费版)来实现数 ...
- java excel 筛选_Java 在Excel中设置筛选器
在日常办公中,Excel工作表通常含有大量不同类型的数据,当我们想方便,快捷地从中筛选并显示所需数据时,则需用到筛选器这一工具.本文就将通过使用Java程序来演示如何设置Excel筛选器. Jar文件 ...
- java导出excel报表_java生成excel报表文件示例
此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库 首先建立数据库的连接池: package jdbc; import java.io.FileInputStream; ...
- Java 散点图 数据库 代码_Java 创建Excel散点图
散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,表示因变量随自变量而变化的大致趋势,常用于比较跨类别的聚合数据.在excel中,支持创建散点图来实现数据分析,本文将通过java程序代码示例来 ...
- java 表格 列删除_Java 删除Excel表格中的空白行或列
Java 删除Excel表格中的空白行和列 本文介绍在Java程序中如何来删除Excel表格中多余的空白行或者列. 使用工具:Free Spire.XLS for Java (免费版) Jar获取及导 ...
- java excel 列_Java 删除Excel中的行和列
Excel是日常工作中常用的办公软件之一.在制作表格的时候,有时需要在工作表中插入一个或多个行和列,同时也会遇到需要将工作表中多余的行或列删除的情况.本文就将通过使用Java程序来演示如何删除Exce ...
- java excel 背景_Java设置Excel背景
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Java 设置Excel表格颜色背景(即指定单一颜色作为背景色).图片背景(即 ...
- java excel 操作方式_Java读写Excel基本操作
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. 接口: HSSF - Microsoft Exce ...
最新文章
- 无法找到python第三方库的处理方法
- PAT甲级1060 Are They Equal:[C++题解]字符串处理、有效数字、代码简洁!!!
- 拉索检测机器人_昌都斜拉索锈蚀检测系统,斜拉索检测机器人推荐
- 133. Clone Graph 克隆图
- 如何给Android添加可视化工具,可视化实现在手机上抓包 方便调试 OkNetworkMonitor...
- Quartz使用总结、Cron表达式
- iOS UIWebView URL拦截
- 图像识别(2)—验证码篇
- GitHub改为token验证后,如何提交代码?
- springboot中关于springMvc默认配置,配置扩展,全面接管
- sublime text3的一些小技巧记录(配gif图)
- es if语法 script_Elasticsear7.x DSL语法之文档管理
- 数据库系统及应用——班级管理系统
- 安卓投屏大师_玩转手机投屏,我推荐三款不一样的投屏工具!
- python进阶例题
- 企业OA办公系统选型技巧实用指南
- java楼盘管理系统_课内资源 - 基于Java面向对象开发的房屋中介管理系统
- 第十二届蓝桥杯时间显示问题 python解法
- [国家集训队]矩阵乘法 整体二分
- 金融市场一周简报(2017-08-18)