实现两个需求:

1、对关键字符的过滤;

2、对应字段的累加;

public class Test1 {public static void main(String[] args) throws IOException, BiffException, StringIndexOutOfBoundsException {SimpleDateFormat df = new SimpleDateFormat("yyMMddHHmmss");//设置日期格式String d=df.format(new Date());String strCon  =  "";
//        System.out.println(d);// new Date()为获取当前系统时间String OriginSourcePath = System.getProperty("OrignSourcePath");String TargetSourcePath = System.getProperty("TargetSourcePath");String OriginFileName = System.getProperty("OriginFileName");String TargetFileName = "\\NPendingAlertReport" + d +".xls";String op=OriginSourcePath+OriginFileName;
//        System.out.println(op);String tp = TargetSourcePath+TargetFileName;
//        System.out.println(tp);try {Workbook book = Workbook.getWorkbook(new File(op));WritableWorkbook wbook = Workbook.createWorkbook(new File(TargetSourcePath + TargetFileName), book);//
//            Workbook book = Workbook.getWorkbook(new File("D:\\ooq//PendingAlertReport21-0630.xls"));
//            WritableWorkbook wbook = Workbook.createWorkbook(new File("D:\\ooq//"+TargetFileName), book);//  获得第一个工作表对象
//            WritableSheet sheet = (WritableSheet) book.getSheet(0);WritableSheet sheet = (WritableSheet) wbook.getSheet(0);//            WritableSheet sheet  =  (WritableSheet) wbook.getSheet( 0 );int rows = sheet.getRows();int clos = sheet.getColumns();Cell cell1 = null;Cell cell2 = null;//查询表格数据
//            for (int i = 0; i < rows; i++) {
//                for (int j = 2; j < clos; j++) {
//                    Cell[] cells=sheet.getRow(i);
//                    String value=cells[j].getContents();
//                    System.out.print(value+"\t");
//                }
//                System.out.println();
//            }//Cell[] cells输出与Cell cell1s互为转置//查询Pending <10 Days 至  Pending >= 45 Days
//            for (int i = 0; i < rows; i++) {
//                for (int j = 0; j < clos  ; j++) {
//                    Cell[] cells=sheet.getRow(i);
//                    String value=cells[j].getContents();
//                    System.out.print(value+"\t");
//                }
//                System.out.println();
//            }
//            System.out.println();//累加Pending <10 Days 至  Pending >= 45 Days jcountfor (int i = 1; i < rows; i++) {int jcount = 0;//确定填充的单元格位置Cell cell1s=sheet.getCell(clos-1,i);//                    System.out.println(cell1s.getContents());for (int j = 2; j < clos -1 ; j++) {Cell cells=sheet.getCell(j,i);int c =Integer.parseInt(cells.getContents());jcount = c +jcount;
//                    System.out.print(cells.getContents()+"   ");
//                    System.out.print(c + "  ");}
//                if(cells.getType() == CellType.LABEL) {Label label = new Label(clos-1,i,String.valueOf(jcount));System.out.println("str:"+String.valueOf(jcount));// 需要填充单元格的内容No of outstanding alertssheet.addCell(label);//                }System.out.println(jcount);}for (int i = rows - 1; i >= 0; i--) {cell1 = sheet.getCell(1, i);
//                测试是否填充成功
//                if(cell1.getType() == CellType.LABEL) {
//                    Label label = new Label(3, i, "Yes");// Yes 是需要填充单元格的内容
//                        sheet.addCell(label);
//                }strCon = cell1.getContents();System.out.println(strCon);boolean a = AlterReportService.isExist(strCon.trim());
//                matcher = pattern.matcher(strCon.trim());
//                isEmail = matcher.matches();//System.out.println("try :["+strCon + "]\tres :"+isEmail);if (true == a) {System.out.println("delete :" + strCon);sheet.removeRow(i);}}wbook.write();wbook.close();book.close();System.out.println("done!");} catch (Exception e) {System.out.println(e);}}
}
数据源
MODULE  Unit Pending <10 Days Pending >=10 and <20 Days Pending >=20 and <30 Days Pending >=30 and <45 Days Pending >= 45 Days No of alerts
AML-EWLF1 IMTCMP 377 776 278 9 10 1440
AML-EWLF1 CL1 2 0 0 0 0 2
AML-EWLF1 CMP1 377 776 278 9 0 1440
AML-EWLF1 CS1 2 0 0 0 0 2
AML-EWLF1 IMTPEN 13 33 21 17 34 118
AML-EWLF1 GEN1 1 10 10 10 0 1
AML-EWLF1 NB1 14 0 3 0 0 17
AML-EWLF1 OPS1 1 1 2 0 0 4
AML-EWLF1 IMTOTH 10 1 10 10 8 9
AML-EWLF1 PEN1 13 33 21 17 34

118

java 实现对excel的数据清洗相关推荐

  1. SpringBoot通过WorkBook快速实现对Excel的导入和导出(包括数据校验)

    之前转载过一篇对Excel基本操作相关的文章,这篇文章的浏览量迅速飙升,以至于在我博客的热门文章中排到了第三的位置,不过那篇转载的文章实用性差并且讲解不是很清晰,所以打算趁着今天休息,写一篇关于Spr ...

  2. EasyExcel实现对excel文件读写

    EasyExcel实现对excel文件读写 1.EasyExcel介绍 2.EasyExcel特点: 3.EasyExcel写操作 3.1 pom中引入xml相关依赖 3.2 创建实体类 3.3 实现 ...

  3. java验证xml格式是否正确的是_spring源码附录(1)java实现对XML格式的验证

    最近在看spring源码,涉及到xml文档的解析.xml文档的格式验证,发现自己对xml解析的基础较为薄弱,本篇博客复习下DOM方式解析xml(即spring解析xml的方式). DOM解析XML是将 ...

  4. python对excel表统计视频教程_Python实现对excel文件列表值进行统计的方法

    本文实例讲述了Python实现对excel文件列表值进行统计的方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python #coding=gbk #此PY用来统计一个execl ...

  5. 用python编excel统计表_Python实现对excel文件列表值进行统计的方法

    本文实例讲述了Python实现对excel文件列表值进行统计的方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python #coding=gbk #此PY用来统计一个execl ...

  6. java实现对properties类型文件的读写

    在java项目中,我们通常会有一些配置属性的数据,采用properties文件对数据进行管理是很有必要的,尤其是在属性值改变和项目环境发生变化时,所以特地总结一下对properties文件的最常见的操 ...

  7. Java实现对PDF文件添加水印

    Java实现对PDF文件添加水印 目录 Java实现对PDF文件添加水印 导入依赖 工具方法 效果 最近项目中遇到对PDF添加水印,实现有多种,采取的是itextpdf 导入依赖 <!-- 对P ...

  8. java实现对pdf文件压缩,拆分,修改水印,添加水印

    最近要实现一个文件上传,并且在线预览上传文件的功能,设计思路是:把上传的文件通过openoffice转成pdf文件,并将pdf文件以流的形式返回到浏览器,由于上传的部分文件过大,转成pdf后传回前端浏 ...

  9. 使用Python实现对excel数据的处理

    前言 **使用Python实现对excel数据的处理, 预先知识简单介绍 xlrd中 # File_Path是Excel路径,打开Excel工作蒲 workbook = xlrd.open_workb ...

最新文章

  1. 图论500题 ---- 并查集+树形dp+枚举 求解动态的最小生成树 HDU 4126
  2. Tomcat问题 无法启动
  3. AI最优论文+代码查找神器:966个ML任务、8500+论文任你选
  4. Caffe实践】如何利用Caffe训练ImageNet分类网络
  5. pytorch实现简易分类模型
  6. 修理牛棚 Barn Repair
  7. Python 随机森林分类
  8. python继承如何进行引用传递的区别_python在什么情况下会引用传递呢?
  9. 阿里云服务器和mysql的原理_mysql 数据库同步原理
  10. Centos7.0安装 Lets encrypt 的SSL证书
  11. python pandas stack和unstack函数
  12. 不卖了?这家公司暂停门店销售iPhone!
  13. 剑指offer25-合并两个排序的链表
  14. 2018年全国多校算法寒假训练营练习比赛(第一场)F. 大吉大利,今晚吃鸡——跑毒篇(模拟)
  15. java动态字段排序_Java利用Stream来实现多字段排序功能
  16. 统计学怎么求加权指数_统计学课程作业(统计指数)
  17. 公司网络很慢很卡的原因分析与处理
  18. 第五篇 python计算新版个人所得税
  19. python文件批量改名
  20. 【3】天猫精灵开放实验平台实验— 切换意图,参数传递

热门文章

  1. JS——遍历对象方法总结
  2. Twemproxy+ssdb双主配置
  3. 得了糖尿病就得戒水果?
  4. geoserver官网--OWS
  5. 常见的http请求头以及响应头
  6. python量化交易视频教程
  7. Ubutun18 wifi网速跑不满
  8. 在分类中如何处理训练集中不平衡问题
  9. HC小区管理系统组织架构说明
  10. 游轮航行vr虚拟仿真交互体验