2

因此,我从 excel 文件中的工作表中的选定单元格中提取数据,然后尝试将其写入另一个文件。数据在 vatAdata 数组中被很好地携带,据我所知,它被写入 for 循环中的单元格,因为它在插入后打印出每个单元格(仅用于调试目的)。但是当我稍后打开文件时,只有最后一个单元格中有数据,所有其他单元格都为空。知道是什么导致了这个问题吗?

for(int i=0;i<vatAdata.length;i++){
        Cell cellInsert=sheet.createRow(rowIndex).createCell(colIndex+i);
        cellInsert.setCellType(vatAtype[i]);
    //  System.out.println(cellInsert.);
        if(vatAtype[i]==0){
            cellInsert.setCellValue(Double.parseDouble(vatAdata[i]));
            System.out.println(cellInsert.getNumericCellValue()+" written");
        }
        else{
            cellInsert.setCellValue(vatAdata[i]);
            System.out.println(cellInsert.getStringCellValue()+" written");
        }
    }

    FileOutputStream out=new FileOutputStream("/home/chris/Documents/test.xlsx");
    wb.write(out);
    out.close();
4

1 回答 1

3
cellInsert=sheet.createRow(rowIndex).createCell(colIndex+i);

您需要将新的 Row 值保存到变量中才能重用它。

row = sheet.createRow(rowIndex);
cellInsert = row.createCell(colIndex+i);
于 2012-07-30T18:58:48.413 回答