2013-02-28 2 views
0

Я использовал POI для чтения/записи для Excel. При записи на новый лист с использованием POI он работал. Но когда я пытаюсь писать в существующей книге Excel, используя 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(); 
+1

пожалуйста, делитесь код – Biswajit

+0

«Не работает» не поможет. Вы должны сказать нам, что происходит * точно *. –

+0

Я думаю, вам нужно посмотреть [этот ответ] (http://stackoverflow.com/a/14951430/2024761). Скорее всего, это так. – SudoRahul

ответ

0

fileOutSheet1 = new FileOutputStream(sheet1.getSheetName()); кажется неправильным. вы должны указать путь книги, а не sheet1.getSheetName. потому что вы пишете всю книгу даже после изменения содержимого одной ячейки.

, например, она должна быть как

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

для детальной информации посетите here