比较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项目实施组织架构分析


相关推荐
·薯条大王7 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
ZJH__GO10 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
程序员黑豆11 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
命运之光11 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
凤山老林11 小时前
Spring Boot @Async 线上实战:从默认配置到生产级线程池治理
java·spring boot·后端
marvelyu12 小时前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库
AI人工智能+电脑小能手13 小时前
大白话说Java设计模式-04-工厂方法模式(业务实战篇)
java·设计模式·工厂方法模式·架构设计·代码解耦
BUG指挥官13 小时前
Sa-Token和Spring Security对比
java·后端·spring
小当家.10513 小时前
深入理解 ReAct Agent:从原理到 Java 实战
java·react.js·agent·react·架构设计·agent设计
geminigoth13 小时前
Spring AI Alibaba 入门开发一(备份)
java·人工智能·spring