使用Java读取excel表的每一行

时间:2018-03-26 07:05:38

标签: java iterator row excel-reader

我有n行和Excel表格列。示例

Name OrderId Count Date 
ANC 1234 5 23/3/18 
ABCD 2345 6 23/3/18 
XYGS 3567 7 23/3/18

所以在上面的数据中,我想读取Orderid和Count,并将它们作为下一次调用的输入。我使用了以下代码

if(columnIndex != 0) {

  for(Row row1: sheet) {

    Cell C =row1.getCell(columnIndex);
    po_number =c.getStringCellValue();
    excelList.add(po_number);
    int n = columnIndex+1;
    Cell line_number1= row1.getCell(n);
    line_number = line_number1.getStringCellValue();

    FileOutputStream("D:\Users\abcd\Documents\AMD\Output\output.csv"));

    System.out.println(po_number + " " +line_number);

  } 
}

上面的代码读取excel表并在控制台中给出输入,但是我希望在某个数组或列表中分配特定角色,从中我可以以迭代方式将其作为输入提供给下一个函数。有人可以帮我这个。

1 个答案:

答案 0 :(得分:0)

我想说一下int的数组列表(order和count似乎是整数),或者如果你想把它们作为字符串那么就是String

  List<int[]> data = new ArrayList<>();
  for(int i=1; i<sheet.getPhysicalNumberOfRows(); i++) {
    Row row = sheet.getRow(i);
    int orderId = (int)row.getCell(1).getNumericCellValue();
    int count = (int)row.getCell(2).getNumericCellValue();
    data.add(new int[] { orderId, count });
  }

data应如下所示

[1234, 5], [2345, 6], [3567, 7]

你可以把它传递给另一个方法,假设这个方法

private static void myOtherMethod(List<int[]> data) {
  // Do whatever you want here
}
你打电话给:

myOtherMethod(data);