How to add header column in excel using Java Apache POI?

故事扮演 提交于 2019-12-12 17:04:24

问题


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");
....

It creates excel file as shown below:

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");
...

But in my case I have to give 100+ row labels. SO this won't be efficient way.


回答1:


Just create one row for each header, and populate the first cell in each!

Something like:

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]);
}

Then when populating your data, do sheet.getRow(rownumber) to get the existing row, and populate the remaining cells of interest in it



来源:https://stackoverflow.com/questions/33735173/how-to-add-header-column-in-excel-using-java-apache-poi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!