0

POI を使用して Excel シートの読み取り/書き込みを行いました。POI を使用して新しいシートに書き込むと、うまくいきました。問題?

              workBook =  getWorkbookSheet(workBookName);
    sheet1 = workBook.getSheetAt(1);
    sheet2 = workBook.getSheetAt(2);

    while(sheetStart<sheet1.getLastRowNum() + 1)
    {
        HSSFRow rowSheet1 = sheet1.getRow(sheetStart);
        HSSFCell cellSheet1 = rowSheet1.getCell(4);
        if(cellSheet1.getStringCellValue().trim().equals(valY))
        {                                           cellSheet1.setCellValue("N");
        }
        else
            //do nothing 
            sheetStart++;
    }
    fileOutSheet1 = new FileOutputStream(sheet1.getSheetName());
    workBook.write(fileOutSheet1);
    fileOutSheet1.flush();
    fileOutSheet1.close();
4

1 に答える 1

0

fileOutSheet1 = new FileOutputStream(sheet1.getSheetName());正しくないようです。sheet1.getSheetName の代わりにワークブックのパスを指定する必要があります。1 つのセルの内容が変更された後でも、ワークブック全体を作成しているためです。

たとえば、次のようになります

    FileOutputStream fileOut = new FileOutputStream("C:\\MyWorkbook.xlsx");
    wb.write(fileOut);
    fileOut.close();

詳細はこちら

于 2013-07-11T01:16:26.727 に答える