我需要找到excell sheet 1值并打印到数据新表中我只需要使用java的sheet1

时间:2017-07-13 21:53:30

标签: java apache-poi

我有2张excel表:

  • 工作表1包含大量id和特定数据
  • 表2只有一些ID

我需要从表1到表2获得相关数据。

表2: enter image description here

String input2 = "C:/Users/CHATHURANGA/Desktop/fiverr/New folder/Sheet2.xlsx";

FileInputStream excelFile2 = new FileInputStream(new File(input2));
Workbook workbook3 = new XSSFWorkbook(excelFile2);
Sheet datatypeSheet2 = workbook3.getSheetAt(0);
Iterator<Row> iterator2 = datatypeSheet2.iterator();

while (iterator2.hasNext()) {

    Row currentRow = iterator2.next();
    Iterator<Cell> cellIterator2 = currentRow.iterator();

    while (cellIterator2.hasNext()) {

        Cell currentCell = cellIterator2.next();
        //getCellTypeEnum shown as deprecated for version 3.15
        //getCellTypeEnum ill be renamed to getCellType starting from version 4.0
        if (currentCell.getCellTypeEnum() == CellType.STRING) {
            System.out.print(currentCell.getStringCellValue() + "--");
        } else if (currentCell.getCellTypeEnum() == CellType.NUMERIC) {
            System.out.print(currentCell.getNumericCellValue() + "--");
        }

    }
    System.out.println();

}  

我将以与上面所示相同的方式阅读第1页。

如何将表2中的ID与表1中的相关数据进行匹配?

1 个答案:

答案 0 :(得分:0)

你的原型:

从sheet1创建函数读取数据:

public HashMap<String, String> getSheet1Data (Sheet sheet1){
    HashMap<String, String> map = new HashMap<>();
    for (Row row : sheet1){
        map.put (row.getCell(1).getValueAsString(), row.getCell(2).getValueAsString());
     }
     return map;
}

在主类中创建一个函数来填充数据到sheet2

public void populateSheet2 (HashMap<String, String> map, Sheet sheet2){
    for (Row row : sheet2){
        String id = row.getCell(1).getValueAsString();
        String data = map.get(id);
        row.createCell(2).setValue(data);
    }
}