【Apache POI库读取Excel文件,并使用HashMap来存储和检查重复项】
  7jPfnBIFtnum 10天前 58 0

下面是一个示例代码,使用Apache POI库读取Excel文件,并使用HashMap来存储和检查重复项。

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

import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class ExcelDuplicateFinder {

    public static void main(String[] args) {
        String filePath = "path/to/your/excel/file.xlsx";
        String sheetName = "Sheet1";

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

            Sheet sheet = workbook.getSheet(sheetName);
            if (sheet == null) {
                System.out.println("Sheet '" + sheetName + "' not found.");
                return;
            }

            Map<String, Integer> dataMap = new HashMap<>();
            int rowCount = sheet.getLastRowNum() + 1;

            for (int i = 0; i < rowCount; i++) {
                Row row = sheet.getRow(i);
                if (row != null) {
                    Cell cell = row.getCell(0); // Assuming data is in the first column
                    if (cell != null) {
                        String data = cell.getStringCellValue();
                        if (dataMap.containsKey(data)) {
                            System.out.println("Duplicate data found: " + data);
                        } else {
                            dataMap.put(data, i);
                        }
                    }
                }
            }

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

在上面的代码中,filePath变量表示Excel文件的路径,sheetName变量表示要处理的工作表的名称。代码首先使用FileInputStreamXSSFWorkbook来加载Excel文件。然后,它通过getSheet方法获取指定名称的工作表。

代码使用HashMap来存储数据,并遍历工作表的每一行来检查重复项。在示例代码中,我们假设数据在第一列,因此使用row.getCell(0)获取单元格内容。如果数据已经在dataMap中存在,则说明存在重复项。否则,将数据添加到dataMap中。

注意,上述代码假设Excel文件的扩展名为.xlsx。如果使用旧的.xls格式,需要使用HSSFWorkbook而不是XSSFWorkbook类。

使用此代码,可以快速找到Excel列中的重复数据,并根据需要执行相应的操作。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 10天前 0

暂无评论

7jPfnBIFtnum