Java 读取两个excel表并判断是否存在两个相同的人,如果存在就对比他们的数据
时间: 2024-02-05 18:10:34 浏览: 111
可以使用 Apache POI 库来读取 Excel 表格,并使用 HashMap 存储每个人的信息。具体实现步骤如下:
1. 导入 Apache POI 库。
2. 创建一个 HashMap,key 为人名,value 为该人的信息。
3. 使用 POI 库读取第一个 Excel 表格,将每个人的信息存入 HashMap 中。
4. 使用 POI 库读取第二个 Excel 表格,对于每个人,判断其是否在 HashMap 中出现过。
5. 如果存在相同的人,就比较他们的数据并输出结果。
以下是示例代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelCompare {
public static void main(String[] args) {
try {
// 创建 HashMap 存储人员信息
HashMap<String, String[]> map = new HashMap<String, String[]>();
// 读取第一个 Excel 表格
FileInputStream file1 = new FileInputStream(new File("file1.xlsx"));
XSSFWorkbook workbook1 = new XSSFWorkbook(file1);
XSSFSheet sheet1 = workbook1.getSheetAt(0);
for (Row row : sheet1) {
String name = row.getCell(0).getStringCellValue();
String[] info = new String[] {
row.getCell(1).getStringCellValue(),
row.getCell(2).getStringCellValue()
};
map.put(name, info);
}
// 读取第二个 Excel 表格
FileInputStream file2 = new FileInputStream(new File("file2.xlsx"));
XSSFWorkbook workbook2 = new XSSFWorkbook(file2);
XSSFSheet sheet2 = workbook2.getSheetAt(0);
for (Row row : sheet2) {
String name = row.getCell(0).getStringCellValue();
if (map.containsKey(name)) {
String[] info = map.get(name);
if (info[0].equals(row.getCell(1).getStringCellValue())
&& info[1].equals(row.getCell(2).getStringCellValue())) {
System.out.println(name + " 信息相同");
} else {
System.out.println(name + " 信息不同");
}
}
}
// 关闭文件流和工作簿
workbook1.close();
workbook2.close();
file1.close();
file2.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
注意,这里只是基本的示例代码,实际情况可能需要根据具体需求进行更改和完善。
阅读全文