读取excel并按列将单元格值分配给数组

时间:2018-04-23 17:21:13

标签: java excel apache-poi

使用apache.poi,我正在尝试阅读Excel工作表并使用下面的代码,我在Excel中打印所有值..

  for (int i = 0; i < rowCount + 1; i++) {
        Row row = searcsheet.getRow(i);

        // Create a loop to print cell values in a row
        for (int j = 0; j < row.getLastCellNum(); j++) {
            // Print Excel data in console
            String location = (row.getCell(j).getStringCellValue()+ "");
            System.out.println(location);
        }

当我打印位置System.out.println(location);时,它会打印我的所有Excel工作表数据。我对那里没有任何控制权。我正在尝试将值除以列。

假设我有3个单元格,并且我希望获得类似firstname[],lastname[],age[]的值,以便我可以通过索引进行任何操作。我没有得到任何解决方案。

enter image description here

这是我的完整代码 https://codeshare.io/anNwy3

1 个答案:

答案 0 :(得分:2)

创建2D String数组。迭代时将内容存储到数组中

String[][] excelData = new String[numColumns][searcsheet.getLastRowNum()];
//numColumns is the number of columns in the excel sheet.
for (int i = 0; i < rowCount + 1; i++) {
    Row row = searcsheet.getRow(i);

    for (int j = 0; j < row.getLastCellNum(); j++) {
        String data = (row.getCell(j).getStringCellValue()+ "");
        excelData[j][i] = data;
    }
}

将数据存储到数组中时转置数据(注意:excelData[j][i]而不是excelData[i][j])。

通过此操作,您可以将第一列的所有内容都显示为excelData[0]