2017-08-24 48 views
0

嗨,我是新的寫入數據,但在做了大量的研究和閱讀文檔後,我已經做到了。數據寫在一個Excel列Java

我的問題: 當字符串數據存儲在我的數組中,並將其寫入excel中,但它不會將它放在一列中(這是我想要的),它將每個字符串排在它右邊的一列中在我的電子表格的對角下降。下面是一張照片。

enter image description here

我想是被把每串/名稱一個欄下對方。任何建議,將不勝感激。

代碼段:

System.out.println("Write data to an Excel Sheet"); 
    FileOutputStream out = new FileOutputStream("C:/Users/hoflerj/Desktop/text2excel/finish.xlsx"); 

    XSSFWorkbook workBook = new XSSFWorkbook(); 
    XSSFSheet spreadSheet = workBook.createSheet("clientid"); 
    XSSFRow row; 
    XSSFCell cell; 

    for(int i=0;i<arr.size();i++){ 
     row = spreadSheet.createRow((short) i); 
    cell = row.createCell(i); 
    System.out.println(arr.get(i)); 
    cell.setCellValue(arr.get(i).toString()); 
    } 


    System.out.println("Done"); 
    workBook.write(out); 
    arr.clear(); 
    out.close(); 
+1

你可能不需要循環。看看這個網站(https://www.mkyong.com/java/apache-poi-reading-and-writing-excel-file-in-java/),希望這可以提供幫助。 – ian0411

+0

但是我會查看該網站。我沒有看到如何將存儲在數組中的數據寫入Excel文檔而不使用循環。 – Jonathan

+0

我想要做的就是將它全部保存在一個列中,每個列中的每個名稱都堆疊在另一列中。 – Jonathan

回答

3

您正在增加列索引爲好。
只要改變來自:

cell = row.createCell(i); 

要:

cell = row.createCell(0); 

所以For Loop將是這樣的:

for(int i=0;i<arr.size();i++){ 
    row = spreadSheet.createRow((short) i); 
    cell = row.createCell(0); 
    System.out.println(arr.get(i)); 
    cell.setCellValue(arr.get(i).toString()); 
} 

或者用更少的線路:

for(int i=0;i<arr.size();i++){ 
    row = spreadSheet.createRow((short) i); 
    row.createCell(0).setCellValue(arr.get(i).toString()); 
    System.out.println(arr.get(i)); 
} 
+0

好的會試試這個。 – Jonathan

+0

工作感謝:) – Jonathan

+0

很高興幫助:) – ManishChristian