数据写在一个Excel列Java中

时间:2017-08-24 17:11:57

标签: java excel apache-poi

嗨,我很擅长将数据写入excel,但经过大量的研究和阅读文档,我已经完成了。

我的问题: 当字符串数据存储在我的数组中并将其写入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 个答案:

答案 0 :(得分: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));
}