如何使用Java Apache POI在Excel中添加标题列?

时间:2015-11-16 12:16:45

标签: java excel apache-poi

我正在编写一个java程序,我必须从XML文件中获取数据并将其放入excel文件中。在执行此操作时,我必须创建行标题并相应地添加数据。

我知道如何创建列标题。我可以通过以下方式实现:

....
HSSFWorkbook workbook = new HSSFWorkbook();
    HSSFSheet sheet = workbook.createSheet("EDR Raw Data");

    Row header = sheet.createRow(0);
    header.createCell(0).setCellValue("Header1");
    header.createCell(1).setCellValue("Header2");
    header.createCell(2).setCellValue("Header3");
    header.createCell(3).setCellValue("Header4");
....

创建excel文件,如下所示: enter image description here

但我希望我的excel文件如下所示:

enter image description here

我无法做到这一点。单独创建所需数量的行并不是一个好主意。我们有什么方法可以创建一个列并在该列中添加所有标题?

我尝试这样做的方式是:

....
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("EDR Raw Data");

sheet.createRow(0).createCell(0).setCellValue("header1");
sheet.createRow(1).createCell(0).setCellValue("header2");
sheet.createRow(2).createCell(0).setCellValue("header3");
sheet.createRow(3).createCell(0).setCellValue("header4");
...

但在我的情况下,我必须提供100多个行标签。所以这不是有效的方式。

1 个答案:

答案 0 :(得分:5)

只为每个标题创建一行,并填充每个标题中的第一个单元格!

类似的东西:

String[] headers = new String[] { "Header1", "Header2", "Header3" };

Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("EDR Raw Data");

for (int rn=0; rn<headers.length; rn++) {
   Row r = sheet.createRow(rn);
   r.createCell(0).setCellValue(headers[rn]);
}

然后在填充数据时,执行sheet.getRow(rownumber)以获取现有行,并填充其中感兴趣的剩余单元格