@Override
public ResultBean txImportDqKpi(String filePath)
{
ResultBean rb = new ResultBean();
int success = 0, fail = 0;
StringBuffer sb = new StringBuffer();
try
{
File file = new File(fsConfig.getFsRoot() + filePath);
Workbook wb = Workbook.getWorkbook(new FileInputStream(file));
Sheet sheet = wb.getSheet(0);
int rows = sheet.getRows();
List<SchDqKpiHead> dqKpiHeadList = new ArrayList<SchDqKpiHead>();
SchDqKpiHead dqKpiHead = null;
for (int row = 2; row < rows; row++)
{
if (!TopUtil.isValidValue(sheet.getCell(0, row).getContents()))
{
continue;
}
try
{
dqKpiHead = new SchDqKpiHead();
dqKpiHead.setHeadId(new Long(this.checkIfNullToZero(sheet.getCell(0, row).getContents())));
dqKpiHead.setDqKpiCode(sheet.getCell(1, row).getContents());
dqKpiHead.setDqKpiName(sheet.getCell(2, row).getContents());
dqKpiHead.setDqKpiDesc(sheet.getCell(3, row).getContents());
dqKpiHead.setCalculateSql(sheet.getCell(4, row).getContents());
dqKpiHead.setAlterCondition(sheet.getCell(5, row).getContents());
dqKpiHead.setAlterMsg(sheet.getCell(6, row).getContents());
dqKpiHead.setObjectType(sheet.getCell(7, row).getContents());
dqKpiHead.setDqKpiType(sheet.getCell(8, row).getContents());
dqKpiHead.setKpiStatus(sheet.getCell(9, row).getContents());
dqKpiHead.setObjectCode(sheet.getCell(10, row).getContents());
dqKpiHead.setRunPosition(sheet.getCell(11, row).getContents());
dqKpiHead.setRunOrder(sheet.getCell(12, row).getContents());
dqKpiHead.setPonderance(sheet.getCell(13, row).getContents());
dqKpiHead.setEnabledFlag(sheet.getCell(14, row).getContents()); dqKpiHead.setCreatedBy("import");
dqKpiHead.setCreatedDate(new Date());
dqKpiHead.setLastUpdatedBy("import");
dqKpiHead.setLastUpdatedDate(new Date()); dqKpiHeadList.add(dqKpiHead);
success++;
} catch (Exception e)
{
log.error(e);
e.printStackTrace();
fail++;
continue;
}
}
sb.append("表:SCH_DQ_KPI_HEAD 成功:" + success + "条,失败:" + fail + "条</br>");
success = fail = 0;
coreDao.saveOrUpdate(dqKpiHeadList);
rb.setData(dqKpiHeadList); sheet = wb.getSheet(1);
rows = sheet.getRows();
List<SchDqKpiLine> dqKpiLineList = new ArrayList<SchDqKpiLine>();
SchDqKpiLine dqKpiLine = null;
for (int row = 2; row < rows; row++)
{
if (!TopUtil.isValidValue(sheet.getCell(0, row).getContents()))
{
continue;
}
try
{
dqKpiLine = new SchDqKpiLine();
dqKpiLine.setLineId(new Long(this.checkIfNullToZero(sheet.getCell(0, row).getContents())));
dqKpiLine.setHeadId(new Long(this.checkIfNullToZero(sheet.getCell(1, row).getContents())));
dqKpiLine.setDtlCode(sheet.getCell(2, row).getContents());
dqKpiLine.setDtlName(sheet.getCell(3, row).getContents());
dqKpiLine.setExecSql(sheet.getCell(4, row).getContents());
dqKpiLine.setAttribute1(sheet.getCell(5, row).getContents());
dqKpiLine.setAttribute2(sheet.getCell(6, row).getContents());
dqKpiLine.setAttribute3(sheet.getCell(7, row).getContents());
dqKpiLine.setAttribute4(sheet.getCell(8, row).getContents());
dqKpiLine.setAttribute5(sheet.getCell(9, row).getContents());
dqKpiLine.setAttribute6(sheet.getCell(10, row).getContents());
dqKpiLine.setAttribute7(sheet.getCell(11, row).getContents());
dqKpiLine.setAttribute8(sheet.getCell(12, row).getContents());
dqKpiLine.setAttribute9(sheet.getCell(13, row).getContents());
dqKpiLine.setAttribute10(sheet.getCell(14, row).getContents());
dqKpiLine.setEnabledFlag(sheet.getCell(15, row).getContents()); dqKpiLine.setCreatedBy("import");
dqKpiLine.setCreatedDate(new Date());
dqKpiLine.setLastUpdatedBy("import");
dqKpiLine.setLastUpdatedDate(new Date()); dqKpiLineList.add(dqKpiLine);
success++;
} catch (Exception e)
{
log.error(e);
e.printStackTrace();
fail++;
continue;
}
}
sb.append("表:SCH_DQ_KPI_LINE 成功:" + success + "条,失败:" + fail + "条</br>");
success = fail = 0;
coreDao.saveOrUpdate(dqKpiLineList);
rb.setMessage(sb.toString());
} catch (Exception e)
{
log.error(e);
e.printStackTrace();
rb.setSuccess(false);
rb.setMessage(e.getMessage());
}
return rb;
}

这是jxl解析excel(多个子表)的代码,权当记录,怕忘记。

原创文章如转载,请注明出处

jxl解析多个excel工作表-java代码的更多相关文章

  1. Java 复制Excel工作表

    本文归纳了关于Java如何复制Excel工作表的方法,按不同复制需求,可分为: 1. 复制工作表 1.1 在同一个工作簿内复制工作表 1.2 在不同工作簿间复制工作表 2. 复制指定单元格数据 对于复 ...

  2. C#7.2——编写安全高效的C#代码 c# 中模拟一个模式匹配及匹配值抽取 走进 LINQ 的世界 移除Excel工作表密码保护小工具含C#源代码 腾讯QQ会员中心g_tk32算法【C#版】

    C#7.2——编写安全高效的C#代码 2018-11-07 18:59 by 沉睡的木木夕, 123 阅读, 0 评论, 收藏, 编辑 原文地址:https://docs.microsoft.com/ ...

  3. C#中如何在Excel工作表创建混合型图表

    在进行图表分析的时候,我们可能需要在一张图表呈现两个或多个样式的图表,以便更加清晰.直观地查看不同的数据大小和变化趋势.在这篇文章中,我将分享C#中如何在一张图表中创建不同的图表类型,其中包括如何在同 ...

  4. C#将一个excel工作表根据指定范围拆分为多个excel文件

    C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其 ...

  5. C# 原样复制excel工作表

    在excel中,工作表是工作薄的组成部分,一个工作薄可以由一个或多个工作表组成,一个工作薄也可以说是一个excel文档,正因为如此,excel工作表的复制也就分为两种类型:在同一文档之内复制和在不同文 ...

  6. 使用宏命令撤销EXCEL工作表保护

    EXCEL工作表编辑资料,设置了工作表保护后,不能对表格进行插入删除操作.如果没有密码,很简单:工具-选项—工作表保护——撤消工作表保护 就可以了.如果忘记密码,如下操作: 1. 打开文件 2. 工具 ...

  7. C# 如何合并Excel工作表

    文档合并.拆分是实现文档管理的一种有效方式.在工作中,我们可能会遇到需要将多个文档合并的情况,那如何来实现呢,本文将进一步介绍.关于拆分Excel工作表,可参见这篇文章--C#如何拆分EXCEL工作表 ...

  8. 电脑右键新建excel工作表,但是扩展名是.xls,而不是.xlsx

    怀疑是因为之前安装了wps,然后又卸载了,导致的.上网查阅,如下: excel默认新建xls 不是我的问题 Excel 2010/2013/2016在鼠标右键新建xls或xlsx文件后,打开报错“无法 ...

  9. C# 合并Excel工作表

    文档合并.拆分是实现文档管理的一种有效方式.在工作中,我们可能会遇到需要将多个文档合并的情况,那如何来实现呢,本文将进一步介绍.关于拆分Excel工作表,可参见这篇文章——C#如何拆分EXCEL工作表 ...

随机推荐

  1. react-admin-plus 正式开源, 欢迎star

    简介 基于react.ant-ui.typescript的前端微服务框架.欢迎star. 在线地址 在线demo 项目介绍   沉淀了几个月的时间,这款框架终于正式的和大家见面了!   先说一下我做这 ...

  2. 总括订单Blanket order

    总括订单Blanket order是客户向其供应方发出的采购订单,但其中包含一段时间内的多个交货日期,通常使用谈判时的预定价格.大多数情况下,它用于对消耗性商品有经常性需求的情况.总括订单通常用于客户 ...

  3. 使用IDEA搭建SpringBoot进行增删改查

    功能环境:java1.8以上  .IntellJIDEA  First: 创建项目,请根据项目图一步一步完成建立. 二.配置数据库 三.创建实体对象建表或对应存在表,根据需要加入相应注解 四.创建应用 ...

  4. 07-flask-使用sqlalchemy

    代码 from flask import Flask, render_template from sqlalchemy import create_engine from sqlalchemy.ext ...

  5. svn 忘记了用户名和密码

    [SVN]如果windows用户忘记了svn的用户名和密码怎么办?   如果windows用户忘记了svn的用户名和密码怎么办? 1>你得进入默认地址 C:\Users\Administrato ...

  6. java基础模拟考试三套试卷

    卷1: 一.单选题(15道,共30分) //1.下列关于JDK.JRE.JVM关系描述正确的是 (A) A:JDK是开发工具,包含了JRE.JRE是运行环境,包含了JVM.JVM是虚拟机,可以保证跨平 ...

  7. burpsuite暴力破解之四种方式

    给出字典排列.详情: 1. 2. 第一项:snipper(中译:狙击手) 1.为两个参数添加payload并且选中snipper,同时指定一个字典. 2.开始attack,并且给出响应结果. 可见有两 ...

  8. 【故障公告】redis内存耗尽造成博客后台无法保存

    非常抱歉,今天上午11:00~11:30左右,由于 redis 服务器内存耗尽造成博客后台故障--保存博文时总是提示"请求太过频繁,请稍后再试",由此给您带来麻烦,请您谅解. 由于 ...

  9. Entity Framework 更新失败,调试后发现是AsNoTracking的原因

    public override int SaveChanges() { var changedEntities = ChangeTracker.Entries().Where(e => e.St ...

  10. 自定义 demo 集合

    各种写着玩的自定义控件demo 有时网上看到一些比较有意思的开源项目,有时间的话就会自己也撸一个出来,但是一般只关注实现样式.动画等,不会太去细致完整地完成,俗称占个坑~ 持续更新中... githu ...