private Map parseExcelFile(String fileName, String tag,String oid_reguser) {
log.info(tag + "进入xls文件解析方法");
List<Blacklist> parseList = new ArrayList<Blacklist>();
Map map = new HashMap();
HSSFWorkbook book = null;
try {
book = new HSSFWorkbook(new FileInputStream(fileName));
} catch (Exception e) {
log.info("获取文件" + fileName + "异常", e);
return null;
}
HSSFSheet sheet = book.getSheetAt(0);
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
Blacklist blacklist = null;
Blacklist tmplist = new Blacklist();
HSSFRow rowInfo = sheet.getRow(rowNum);
if (rowInfo == null) {
break;
}
JSONObject resObj = checkLineData(rowInfo, rowNum, tag);
if (null == resObj) {
map.put("ret_code", "fail");
map.put("ret_msg", "第[" + rowNum + "]笔信息解析异常");
return map;
}
if ("9999".equals(resObj.get("ret_code"))) {
log.info(tag + "第[" + rowNum + "]笔"
+ resObj.get("ret_msg"));
map.put("ret_code", "fail");
map.put("ret_msg", "第[" + rowNum + "]笔"
+ resObj.get("ret_msg"));
return map;
} else if ("1111".equals(resObj.get("ret_code"))) {
break;
}
tmplist.setPartnerid(oid_reguser);
tmplist.setCreatetime(DateUtil.getCurrentDate());
tmplist.setState(NO_AUDIT);
tmplist.setDimensionname((String) resObj.get("dimension"));
tmplist.setRisktypename((String) resObj.get("risktype"));
tmplist.setCasetimestr((String) resObj.get("casetime"));
tmplist.setContent((String) resObj.get("content"));
tmplist.setComment((String) resObj.get("comment"));
parseList.add(tmplist);
}
map.put("parseList", parseList);
if (((List) map.get("parseList")).size() >= Long.parseLong(SUPPORT_RISK_BLACKLIST_NO)) {
map.put("ret_code", "fail");
map.put("ret_msg", "批量文件总笔数超限!");
return map;
}
map.put("ret_code", "succ");
map.put("ret_msg", "解析成功");
return map;
}
private JSONObject checkLineData(HSSFRow rowInfo, int rowNo, String tag) {
JSONObject retObj=new JSONObject();
log.info(tag + "第" + rowNo + "笔付款信息解析");
String dimension = parseExcelCell(rowInfo.getCell(0), tag);
String content = parseExcelCell(rowInfo.getCell(1), tag);
String risktype = parseExcelCell(rowInfo.getCell(2), tag);
String casetime = parseExcelCell(rowInfo.getCell(3), tag);
String comment = parseExcelCell(rowInfo.getCell(4), tag);
log.info(tag + "第" + rowNo + "笔付款信息,维度为[" + dimension + "]维度内容为["
+ content + "]风险类型为[" + risktype + "]案件发生时间为[" + casetime
+ "]案件原因为[" + comment + "]");
if (FuncUtils.isNull(dimension.replace(" ", ""))
&& FuncUtils.isNull(content.replace(" ", ""))
&& FuncUtils.isNull(risktype.replace(" ", ""))) {
Blacklist blacklist2 = new Blacklist();
JSONObject retObj2=new JSONObject();
retObj2.put("ret_code", "1111");
return retObj2;
}
if (FuncUtils.isNull(dimension)
|| "".equals(dimension.replace(" ", ""))) {
log.info(tag + "第" + rowNo + "笔维度为空");
retObj.put("ret_code", "9999");
retObj.put("ret_msg", "维度有误,请核实后重新上传!");
return retObj;
}
if (FuncUtils.isNull(content)
||"".equals(content.replace(" ", ""))) {
log.info(tag + "第" + rowNo + "笔维度内容为空");
retObj.put("ret_code", "9999");
retObj.put("ret_msg", "维度内容有误,请核实后重新上传!");
return retObj;
}
if (FuncUtils.isNull(risktype)
||"".equals(risktype.replace(" ", ""))) {
log.info(tag + "第" + rowNo + "笔风险类型为空");
retObj.put("ret_code", "9999");
retObj.put("ret_msg", "风险类型有误,请核实后重新上传!");
return retObj;
}
retObj.put("dimension", dimension);
retObj.put("content", content);
retObj.put("risktype", risktype);
retObj.put("casetime", casetime);
retObj.put("comment", comment);
retObj.put("ret_code", "succ");
retObj.put("ret_msg", "解析成功");
return retObj;
}
/**
* 解析单元格数据
*
* @param cell
* @return
*/
private String parseExcelCell(Cell cell, String tag) {
log.info(tag + "进入Excel单元格解析方法");
if (cell == null) {
log.info(tag + "cell单元格为null,取默认''值");
return "";
}
String result = new String();
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC:
log.info(tag + "cellType为数字类型");
cell.setCellType(Cell.CELL_TYPE_STRING);
result = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_STRING:
log.info(tag + "cellType为String类型");
result = cell.getRichStringCellValue().toString();
break;
case HSSFCell.CELL_TYPE_FORMULA:
log.info(tag + "cellType为CELL_TYPE_FORMULA类型");
cell.setCellType(Cell.CELL_TYPE_STRING);
result = cell.getStringCellValue();
break;
default:
log.info(tag + "cellType为非数字类型和String类型,取默认''值");
result = "";
break;
}
return result;
}
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
SpringBoot实现Excel文件解析
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
回答csdn论坛:Java语言下excel导入到mysql数据库表...
java解析excel文件 jxl.jar
poi教程,用于java解析,excel文件转换,在我们实际的开发中,表现层的解决方案虽然有多样,但是IE浏览器已成为最多人使用的浏览器,因为大家都用Windows。在企业办公系统中,常常有客户这样子要求:你要把我们的报表...
java解析excel文件 poi.jar
使用POI框架解析复杂的Excel文件+Java后端开发人员+解析复杂Excel文件。内部含有测试使用文件,以及详细的代码注解。
java解析excel的开发包,可以开发office中的excel文件。对其内容进行解析。
java读取excl文件内容进行mysql自动创建表,实现了从手动创建表到自动一键式创建数据库表,大大节省了开发时间,便于程序猿进行项目开发
java注解实现通用Excel中文表格转实体对象列表,支持中文表头,在Excel数据导入使用的通用工具类,代码简洁优雅 。基于注解实现的支持中文表头的读取Excel数据并转换为实体对象列表的工具类,使用该工具类可将Excel...
java web开发 poi 解析excel文件
基于Java的excel开发包,Java最基本的解析excel文件包
开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事儿,此处推荐一个别人造好的轮子,下面介绍下“轮子”的使用。
18.2.2、创建一个Excel文件 18.2.3、读取Excel文件 18.2.4、格式化文本 18.3、本章摘要 附录B:MyEclipse开发工具 19.1、MyEclipse简介 19.2、MyEclipse的安装 19.3、MyEclipse的使用 19.4、配置Tomcat...
18.2.2、创建一个Excel文件 18.2.3、读取Excel文件 18.2.4、格式化文本 18.3、本章摘要 附录B:MyEclipse开发工具 19.1、MyEclipse简介 19.2、MyEclipse的安装 19.3、MyEclipse的使用 19.4、配置Tomcat...
实例18 实现Java中的JTable与Excel之间的数据交换 实例23 Linux下Java程序的编译与调试 实例27 利用JNI实现企业Java程序与传统应用程序的集成 实例35 Java Servlet驱动SQLServer中的数据库 实例37 Java对象...
Apache Commons包中的一个,通过它可以很方便的解析xml文件生成java对象 aspectjrt.jar 和aspectjweaver.jar Annotation 方式实现 AOP commons-dbcp.jar commons-pool-1.2.jar DBCP数据库连接池 cglib-nodep-2.1_...
18.2.2、创建一个Excel文件 18.2.3、读取Excel文件 18.2.4、格式化文本 18.3、本章摘要 附录B:MyEclipse开发工具 19.1、MyEclipse简介 19.2、MyEclipse的安装 19.3、MyEclipse的使用 19.4、配置Tomcat...
POI 3.1读取和导出Excel文件实例,对java开发人员有很大的帮助
MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发...