首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【使用Java代码快速找出Excel列中的重复数据】

【使用Java代码快速找出Excel列中的重复数据】

作者头像
贺公子之数据科学与艺术
发布2025-08-29 09:46:01
发布2025-08-29 09:46:01
22000
代码可运行
举报
运行总次数:0
代码可运行
在这里插入图片描述
在这里插入图片描述

方式一、以下是使用Java代码实现快速找出Excel列中重复数据的示例:

代码语言:javascript
代码运行次数:0
运行
复制
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ExcelDuplicateFinder {

    public static void main(String[] args) {
        String filePath = "path/to/excel.xlsx";
        String sheetName = "Sheet1";
        int columnNumber = 0; // 列索引,从0开始

        try {
            Map<String, Integer> duplicateCount = findDuplicateValues(filePath, sheetName, columnNumber);

            for (Map.Entry<String, Integer> entry : duplicateCount.entrySet()) {
                String value = entry.getKey();
                int count = entry.getValue();
                System.out.println("Value: " + value + ", Count: " + count);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static Map<String, Integer> findDuplicateValues(String filePath, String sheetName, int columnNumber)
            throws IOException {
        Map<String, Integer> duplicateCount = new HashMap<>();

        FileInputStream fis = new FileInputStream(new File(filePath));
        Workbook workbook = WorkbookFactory.create(fis);
        Sheet sheet = workbook.getSheet(sheetName);

        for (Row row : sheet) {
            Cell cell = row.getCell(columnNumber);
            String value = cell.toString();

            if (duplicateCount.containsKey(value)) {
                int count = duplicateCount.get(value) + 1;
                duplicateCount.put(value, count);
            } else {
                duplicateCount.put(value, 1);
            }
        }

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

        return duplicateCount;
    }
}

请注意,上述代码使用了Apache POI库来处理Excel文件。在运行代码之前,需要将filePath变量设置为实际的Excel文件路径,sheetName变量设置为要处理的工作表的名称,columnNumber变量设置为要检查重复的列的索引(从0开始计数)。

代码中的findDuplicateValues方法返回一个Map对象,其中键是重复的值,值是重复出现的次数。你可以根据需要对重复的值进行相应的处理。

方式二

代码语言:javascript
代码运行次数:0
运行
复制
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类。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方式一、以下是使用Java代码实现快速找出Excel列中重复数据的示例:
  • 方式二
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档