数据写在一个Excel列Java

问题描述:

嗨,我是新的写入数据,但在做了大量的研究和阅读文档后,我已经做到了。数据写在一个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

您正在增加列索引为好。
只要改变来自:

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