草稿

102 阅读1分钟

以下是一个Java程序示例,用于比较两个Excel文件中的"A"列内容,并输出分析结果,包括新增的内容、被删除的内容和保留的内容。程序使用Apache POI库来读取Excel文件,并使用集合来进行比较和分析。

请确保你已经下载并导入了Apache POI库(可从 poi.apache.org/ 下载)。同时,需要将第一个Excel文件和第二个Excel文件放在同一个文件夹下,并将文件名作为参数传递给程序。

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ExcelComparator {
    public static void main(String[] args) {
        String file1Path = "[第一个Excel文件路径]";
        String file2Path = "[第二个Excel文件路径]";

        try {
            List<String> file1Content = readColumnContent(file1Path, "A");
            List<String> file2Content = readColumnContent(file2Path, "A");

            Set<String> addedContent = new HashSet<>(file2Content);
            addedContent.removeAll(file1Content);

            Set<String> deletedContent = new HashSet<>(file1Content);
            deletedContent.removeAll(file2Content);

            Set<String> retainedContent = new HashSet<>(file1Content);
            retainedContent.retainAll(file2Content);

            System.out.println("新增的内容:");
            for (String content : addedContent) {
                System.out.println(content);
            }

            System.out.println("\n被删除的内容:");
            for (String content : deletedContent) {
                System.out.println(content);
            }

            System.out.println("\n保留的内容:");
            for (String content : retainedContent) {
                System.out.println(content);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static List<String> readColumnContent(String filePath, String column) throws IOException {
        List<String> content = new ArrayList<>();

        File file = new File(filePath);
        FileInputStream fis = new FileInputStream(file);
        Workbook workbook = new XSSFWorkbook(fis);

        Sheet sheet = workbook.getSheetAt(0); // 假设只有一个表格
        for (Row row : sheet) {
            Cell cell = row.getCell(CellReference.convertColStringToIndex(column));
            if (cell != null) {
                content.add(cell.getStringCellValue());
            }
        }

        workbook.close();
        fis.close();

        return content;
    }
}

请在代码中将[第一个Excel文件路径][第二个Excel文件路径]替换为你实际的Excel文件路径。运行程序后,它将读取两个Excel文件中的"A"列内容,并输出新增的内容、被删除的内容和保留的内容。

请注意,这个程序假设Excel文件的扩展名为xlsx,且只包含一个表格。如果你的Excel文件有多个表格或是其他格式(如xls),需要相应地修改代码。

希望这个程序能满足你的需求。如有其他问题,请随时提问。