2014-04-04 40 views
2

我想將文本添加到Excel文件中。我可以添加一次。但是,當我第二次嘗試時,只有最後一個值被更新。我嘗試了其他一些東西,但我沒有得到答案。在Excel中編輯文本

while (true) { 
      try { 

       clientSocket = serverSocket.accept(); //accept the client connection 
       inputStreamReader = new InputStreamReader(clientSocket.getInputStream()); 
       bufferedReader = new BufferedReader(inputStreamReader); //get the client message 
       message = bufferedReader.readLine(); 

       System.out.println("Java Server1 " + message); 
writeInExcel(message); 

} 

public static void writeInExcel(String stock_list) throws WriteException, IOException, BiffException 
    { 


     Workbook existingWorkbook = Workbook.getWorkbook(new File("try.xls")); 
     WritableWorkbook workbookCopy = Workbook.createWorkbook(new File("output.xls"), existingWorkbook); 
     WritableSheet sheetToEdit = workbookCopy.getSheet(0); 

     Label l = new Label(0, i, String.valueOf(i)); 
     sheetToEdit.addCell(l); 

     workbookCopy.write(); 
     workbookCopy.close(); 
     existingWorkbook.close(); 
    } 

在這裏,只要我在inputstream上獲得一些東西,我需要將它添加到excel文件中。 如果有人能幫我解釋一下我的代碼,那就太好了。可寫的細胞後,我無法理解的代碼完全

+0

看看我的答案.... –

+0

編輯封閉的格式是個壞主意,因爲你可能會損壞格式。如果可能,請嘗試生成xls。 –

+0

@NidhishKrishnan我編輯了我的答案,你可以看看 –

回答

1

因爲在你的代碼中已經把內部的for循環以下,請帶上環路外

workbookCopy.write(); 
workbookCopy.close(); 
existingWorkbook.close(); 

試試這個

Workbook existingWorkbook = Workbook.getWorkbook(new File("try.xls")); 
    WritableWorkbook workbookCopy = Workbook.createWorkbook(new File("output.xls"), existingWorkbook); 
    WritableSheet sheetToEdit = workbookCopy.getSheet(0); 
    for(int i=0;i<5;i++) 
    { 
    Label l = new Label(0, i, String.valueOf(i)); 
    sheetToEdit.addCell(l); 
    } 
    workbookCopy.write(); 
    workbookCopy.close(); 
    existingWorkbook.close(); 

output.xls 當我把極限= 5

enter image description here

+0

我編輯了我的答案,你可以請看看 –