我有一个从Excel文件导入的13行x 31单元格,然后将其存储在arraylist内,因此基本上它是一个像这样的2d数组
[1,2,3,4,5.................]
[a,b,c,d,e.................]
然后将其转换为String []数组
String [] array = null;
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
Row r = sheet.getRow(rowNum);
ArrayList<String> dl = new ArrayList<String>();
for (int i = 3; i < r.getLastCellNum() + 1; i = i + 3) {
Cell cell = r.getCell(i);
val = formatter.formatCellValue(cell);
dl.add(val);
array = dl.toArray(new String[dl.size()]);
}
// send array as parameter to another method inside the same class
WriteNewFile(array);
break;
}
在另一种创建新的excel文件的方法中,我必须循环数组,而不是像上面的数组数据那样包含数据。
for (int x= 0; x<= total - 1; x++) {
Row row3 = sheet.getRow( x+ 2);
Cell cell1 = row3.createCell(3);
cell1.setCellValue(array[x]);
}
运行此代码时,出现如下错误消息:
java.lang.ArrayIndexOutOfBoundsException: 32
我的代码的目的是我想将数组打印在单个单元格中,并将行循环直到总计为1。
总价值为396
已更新
for (int x= 0; x< array.length; x++) {
Row row3 = sheet.getRow( x+ 2);
Cell cell1 = row3.createCell(3);
cell1.setCellValue(array[x]);
}
java.lang.ArrayIndexOutOfBoundsException: 32
的循环已解决。
回到主要问题,现在我只能打印第一行
[1,2,3,4,5.................] //of this row
如何继续下一行?我最好将其转换为一维数组吗?
已更新
现在接收到该数组作为参数后,通过其他方法发送给writeNewFile方法(writeNewFile方法的唯一任务是使用数组数据的apache poi写入新的excel文件),我可以这样写数据:
|test|
1
2
3
4
5
6
据说我想循环数组,像这样下一行继续循环
|test|
1
2
3
4
5
6
a
b
b
d
e