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


相关推荐
nanxun8861 天前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103511 天前
Day01 | Java 基础(Java SE)
java
行者全栈架构师1 天前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师2 天前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_02 天前
mac(m5)平台编译openjdk
java
唐青枫3 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马3 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261353 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261353 天前
Java 打印 Word 文档:从基础打印到高级设置
java
用户3521802454753 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程