比较Excel中的两列目录编号是否一致

使用java代码比较excel中两列是否有包含关系,若有包含关系,核对编号是否一致。

excel数据样例如下:

java 复制代码
package com.itownet.hg;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.IOException;

public class TestExcel1 {
	public static void main(String[] args) {
		try {
			// 创建工作簿对象
			XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream("C:\\Users\\yang\\Desktop\\123.xlsx"));
			// 获取工作簿下sheet的个数
			int sheetNum = xssfWorkbook.getNumberOfSheets();
			System.out.println("该excel文件中总共有:" + sheetNum + "个sheet");
			// 遍历工作簿中的所有数据
			for (int i = 0; i < sheetNum; i++) {
				// 读取第i个工作表
				System.out.println("读取第" + (i + 1) + "个sheet");
				XSSFSheet sheet = xssfWorkbook.getSheetAt(i);
				// 获取最后一行的num,即总行数。此处从0开始
				int maxRow = sheet.getLastRowNum();

				for (int j = 0; j < maxRow; j++) {
					String as = sheet.getRow(j).getCell(2) + "";
					if (as != null && as.length() > 0) {
						for (int k = 0; k < maxRow; k++) {
							String a1 = sheet.getRow(k).getCell(0) + "";
							String a2 = sheet.getRow(j).getCell(1) + "";
							if (a1.endsWith(as)) {
								if (a1.indexOf(a2) <= 0 && a1.indexOf("需求分析方案") > 0) {
									System.out.print(a2);
									System.out.println(as);
									System.out.println(a1);
									System.out.println("------------");
								}
							}
						}
					}
				}
				System.out.println("=================================");
				for (int j = 0; j < maxRow; j++) {
					String as = sheet.getRow(j).getCell(4) + "";
					if (as != null && as.length() > 0) {
						for (int k = 0; k < maxRow; k++) {
							String a1 = sheet.getRow(k).getCell(0) + "";
							String a2 = sheet.getRow(j).getCell(3) + "";
							if (a1.endsWith(as)) {
								if (a1.indexOf(a2) <= 0 && a1.indexOf("总体技术方案") > 0) {
									System.out.print(a2);
									System.out.println(as);
									System.out.println(a1);
									System.out.println("------------");
								}
							}
						}
					}
				}
				for (int row = 0; row <= -1; row++) {
					// 获取最后单元格num,即总单元格数 ***注意:此处从1开始计数***
					int maxRol = sheet.getRow(row).getLastCellNum();
					System.out.println("--------第" + row + "行的数据如下--------");
					for (int rol = 0; rol < maxRol; rol++) {
						System.out.print(sheet.getRow(row).getCell(rol) + "  ");
					}
					System.out.println();
				}
			}

		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

所需jar包

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>4.1.0</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>4.1.0</version>

</dependency>

运行结果:

该excel文件中总共有:1个sheet

读取第1个sheet

6.2项目实施过程文档管理分析

《需求分析方案》->6.1.2项目实施过程文档管理分析


6.3项目实施组织架构分析

《需求分析方案》->6.1.3项目实施组织架构分析


6.3项目实施组织架构分析

《需求分析方案》->6.1.3项目实施组织架构分析


相关推荐
程序员老邢9 分钟前
【产品底稿 07】商助慧 Admin 运维模块落地:从 “能跑” 到 “能运维”,3 个页面搞定日常排障
java·运维·经验分享·spring boot·后端
元宝骑士24 分钟前
Spring @Async 异步无法获取当前登录用户?Sa-Token 1.34.0 终极踩坑解决方案
java·后端
0xDevNull31 分钟前
Java项目中Redis热点Key自动检测方案详细教程
java·spring boot·redis
一嘴一个橘子1 小时前
MP 自定义业务方法 (三)
java
一叶飘零_sweeeet1 小时前
AI Agent 深潜:六大核心模块的设计本质与 Java 实现
java·人工智能·agent
向往着的青绿色1 小时前
Java反序列化漏洞(持续更新中)
java·开发语言·计算机网络·安全·web安全·网络安全·网络攻击模型
Carsene1 小时前
第一章:为什么我们需要“类型安全”的 SQL DSL 框架?
java·sql
wyu729612 小时前
Spring MVC 学习笔记:配置、注解、RESTful、JSON、拦截器、SSM整合、文件上传下载
java
Mr_pyx2 小时前
Java 注解(Annotation)详解:从基础到 APT 实战
java·数据库·sqlserver
MegaDataFlowers2 小时前
调用Service层操作数据
java·开发语言