2

そのため、Excel ファイルのシートから選択したセルからデータを取得し、それを別のファイルに書き込もうとしています。データは vatAdata 配列内でうまく引き継がれており、 for ループのセルに書き込まれていることがわかります。これは、挿入後に各セルを出力するためです (デバッグ目的のみ)。しかし、後でファイルを開くと、最後のセルだけにデータがあり、他のすべてのセルは null です。この問題の原因は何ですか?

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 = sheet.createRow(rowIndex);
cellInsert = row.createCell(colIndex+i);
于 2012-07-30T18:58:48.413 に答える