如何使用Java Apache POI在Excel中添加标题列? [英] How to add header column in excel using Java Apache POI?
问题描述
我正在编写一个Java程序,其中必须从XML文件中获取数据并将其放入excel文件中.在执行此操作时,我必须创建行标题并相应地添加数据.
I am writing a java program in which I have to take data from XML file and put it into excel file. While doing this I have to create row headers and add data accordingly.
我知道如何创建列标题.我可以通过以下方式做到这一点:
I know how to create column headers. I can do it in following way:
....
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文件,如下所示:
It creates excel file as shown below:
但是我希望我的excel文件如下所示:
But I want my excel file looks like below:
我没有办法做到这一点.单独创建所需的行数不是一个好主意.有什么方法可以创建列并在该列中添加所有标题?
I am not getting a way to do this. It's not good idea to create required number of rows individually. Is there any way by which we can create a column and add all header in that column?
我尝试执行此操作的方法是:
The way I tried to do this is:
....
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多个行标签.所以这不是有效的方法.
But in my case I have to give 100+ row labels. SO this won't be efficient way.
推荐答案
只需为每个标头创建一行,然后在每个标头中填充第一个单元格!
Just create one row for each header, and populate the first cell in each!
类似的东西:
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)
以获取现有行,并填充其中剩余的感兴趣的单元格
Then when populating your data, do sheet.getRow(rownumber)
to get the existing row, and populate the remaining cells of interest in it
这篇关于如何使用Java Apache POI在Excel中添加标题列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!