下面是一个示例代码,使用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
变量表示要处理的工作表的名称。代码首先使用FileInputStream
和XSSFWorkbook
来加载Excel文件。然后,它通过getSheet
方法获取指定名称的工作表。
代码使用HashMap
来存储数据,并遍历工作表的每一行来检查重复项。在示例代码中,我们假设数据在第一列,因此使用row.getCell(0)
获取单元格内容。如果数据已经在dataMap
中存在,则说明存在重复项。否则,将数据添加到dataMap
中。
注意,上述代码假设Excel文件的扩展名为.xlsx
。如果使用旧的.xls
格式,需要使用HSSFWorkbook
而不是XSSFWorkbook
类。
使用此代码,可以快速找到Excel列中的重复数据,并根据需要执行相应的操作。