依赖

			<dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>5.2.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>5.2.3</version>
            </dependency>

代码

package com.example.demo1;

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.util.StringUtils;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.*;

public class Demo01 {
    public static void main(String[] args) {
        // 初始化工作簿
        Workbook workbook = new XSSFWorkbook();

        // 读取数据
        Map<String, String> userMap = getMap("C:\\Users\\EucliwoodHellsycthe\\Desktop\\Metadata.xlsx");
        Map<String, String> systemMap = getMap("C:\\Users\\EucliwoodHellsycthe\\Desktop\\制度文件20240603150849.xlsx");
        Map<String, String> nameMap = getMap("C:\\Users\\EucliwoodHellsycthe\\Desktop\\名称.xlsx");

        List<String> list = new ArrayList<>();
        List<String> voList = new ArrayList<>();

        // 处理数据
        for (Map.Entry<String, String> entry : userMap.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            if (!StringUtils.isEmpty(systemMap.get(key))) {
                String val = systemMap.get(key);
                if (!val.equals(value)) {
                    list.add(MessageFormat.format("{0} {1} {2} {3}", key, nameMap.get(key), value, val));
                }
            } else {
                voList.add(MessageFormat.format("{0} {1}", key, nameMap.get(key)));
            }
        }

        // 打印并写入不对应的版本号id
        System.out.println("不对应的版本号id 为:");
        list.forEach(System.out::println);
        setUserMap(workbook, list, "Sheet1");

        // 打印并写入系统中不存在的id
        System.out.println("系统中不存在的id 为:");
        voList.forEach(System.out::println);
        setUserMap(workbook, voList, "Sheet2");

        // 将工作簿写入文件并关闭
        try (FileOutputStream fos = new FileOutputStream("C:\\Users\\EucliwoodHellsycthe\\Desktop\\output.xlsx")) {
            workbook.write(fos);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                workbook.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private static Map<String, String> getMap(String path) {
        Map<String, String> userMap = new HashMap<>();

        try (FileInputStream fis = new FileInputStream(path);
             Workbook workbook = new XSSFWorkbook(fis)) {

            Sheet sheet = workbook.getSheetAt(0);
            Iterator<Row> rowIterator = sheet.iterator();

            while (rowIterator.hasNext()) {
                Row row = rowIterator.next();
                Cell keyCell = row.getCell(0);
                Cell valueCell = row.getCell(2);

                if (keyCell != null && valueCell != null) {
                    String key = keyCell.getStringCellValue();
                    String value = valueCell.getStringCellValue();
                    userMap.put(key.trim(), value.trim());
                }
            }

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

    /**
     * 将数据写入指定的Sheet页
     * @param workbook 工作簿实例
     * @param dataList 数据集
     * @param sheetName 页名称
     */
    private static void setUserMap(Workbook workbook, List<String> dataList, String sheetName) {
        Sheet sheet = workbook.createSheet(sheetName);

        // 写入数据到工作表中
        int rowNum = 0;
        for (String data : dataList) {
            Row row = sheet.createRow(rowNum++);
            String[] values = data.split(" ");

            for (int i = 0; i < values.length; i++) {
                Cell cell = row.createCell(i);
                cell.setCellValue(values[i]);
            }
        }
    }
}