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


相关推荐
苹果醋317 分钟前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
Hello.Reader36 分钟前
深入解析 Apache APISIX
java·apache
菠萝蚊鸭1 小时前
Dhatim FastExcel 读写 Excel 文件
java·excel·fastexcel
一只小灿灿1 小时前
VB.NET在 Excel 二次开发中的全面应用
.net·excel
旭东怪1 小时前
EasyPoi 使用$fe:模板语法生成Word动态行
java·前端·word
007php0071 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
∝请叫*我简单先生1 小时前
java如何使用poi-tl在word模板里渲染多张图片
java·后端·poi-tl
ssr——ssss1 小时前
SSM-期末项目 - 基于SSM的宠物信息管理系统
java·ssm
一棵星2 小时前
Java模拟Mqtt客户端连接Mqtt Broker
java·开发语言
鲤籽鲲2 小时前
C# Random 随机数 全面解析
android·java·c#