java 实现对excel的数据清洗
实现两个需求:
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的数据清洗相关推荐
- SpringBoot通过WorkBook快速实现对Excel的导入和导出(包括数据校验)
之前转载过一篇对Excel基本操作相关的文章,这篇文章的浏览量迅速飙升,以至于在我博客的热门文章中排到了第三的位置,不过那篇转载的文章实用性差并且讲解不是很清晰,所以打算趁着今天休息,写一篇关于Spr ...
- EasyExcel实现对excel文件读写
EasyExcel实现对excel文件读写 1.EasyExcel介绍 2.EasyExcel特点: 3.EasyExcel写操作 3.1 pom中引入xml相关依赖 3.2 创建实体类 3.3 实现 ...
- java验证xml格式是否正确的是_spring源码附录(1)java实现对XML格式的验证
最近在看spring源码,涉及到xml文档的解析.xml文档的格式验证,发现自己对xml解析的基础较为薄弱,本篇博客复习下DOM方式解析xml(即spring解析xml的方式). DOM解析XML是将 ...
- python对excel表统计视频教程_Python实现对excel文件列表值进行统计的方法
本文实例讲述了Python实现对excel文件列表值进行统计的方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python #coding=gbk #此PY用来统计一个execl ...
- 用python编excel统计表_Python实现对excel文件列表值进行统计的方法
本文实例讲述了Python实现对excel文件列表值进行统计的方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python #coding=gbk #此PY用来统计一个execl ...
- java实现对properties类型文件的读写
在java项目中,我们通常会有一些配置属性的数据,采用properties文件对数据进行管理是很有必要的,尤其是在属性值改变和项目环境发生变化时,所以特地总结一下对properties文件的最常见的操 ...
- Java实现对PDF文件添加水印
Java实现对PDF文件添加水印 目录 Java实现对PDF文件添加水印 导入依赖 工具方法 效果 最近项目中遇到对PDF添加水印,实现有多种,采取的是itextpdf 导入依赖 <!-- 对P ...
- java实现对pdf文件压缩,拆分,修改水印,添加水印
最近要实现一个文件上传,并且在线预览上传文件的功能,设计思路是:把上传的文件通过openoffice转成pdf文件,并将pdf文件以流的形式返回到浏览器,由于上传的部分文件过大,转成pdf后传回前端浏 ...
- 使用Python实现对excel数据的处理
前言 **使用Python实现对excel数据的处理, 预先知识简单介绍 xlrd中 # File_Path是Excel路径,打开Excel工作蒲 workbook = xlrd.open_workb ...
最新文章
- 图论500题 ---- 并查集+树形dp+枚举 求解动态的最小生成树 HDU 4126
- Tomcat问题 无法启动
- AI最优论文+代码查找神器:966个ML任务、8500+论文任你选
- Caffe实践】如何利用Caffe训练ImageNet分类网络
- pytorch实现简易分类模型
- 修理牛棚 Barn Repair
- Python 随机森林分类
- python继承如何进行引用传递的区别_python在什么情况下会引用传递呢?
- 阿里云服务器和mysql的原理_mysql 数据库同步原理
- Centos7.0安装 Lets encrypt 的SSL证书
- python pandas stack和unstack函数
- 不卖了?这家公司暂停门店销售iPhone!
- 剑指offer25-合并两个排序的链表
- 2018年全国多校算法寒假训练营练习比赛(第一场)F. 大吉大利,今晚吃鸡——跑毒篇(模拟)
- java动态字段排序_Java利用Stream来实现多字段排序功能
- 统计学怎么求加权指数_统计学课程作业(统计指数)
- 公司网络很慢很卡的原因分析与处理
- 第五篇 python计算新版个人所得税
- python文件批量改名
- 【3】天猫精灵开放实验平台实验— 切换意图,参数传递