8
{
row=sheet.createRow(0);
cell=row.createCell(0);
cell.setCellValue("header");
cell=row.createCell(1);
sheet.addMergedRegion(new CellRangeAddress(0,0,0,1));
row=sheet.createRow(1);
cell=row.createCell(0);
cell.setCellValue("Keys");
cell=row.createCell(1);
cell=row.setCellValue("Values");
row=sheet.createRow(2);
cell=row.createCell(0);
cell.setCellValue("No data");
cell=row.createCell(1);
sheet.addMergedRegion(new CellRangeAddress(1,1,0,1);
sheet.autoSizeColumn(0);
}

autosize is working when I merged two columns of row zero, but after merging two columns of second row autosize is not working.. thanks in advance...

hardcode
  • 395
  • 3
  • 19

1 Answers1

18

I've spotted your problem, it's this line:

sheet.autoSizeColumn(0);

From the javadocs on autoSizeColumn(int) we see this key bit of information:

Default is to ignore merged cells.

You need to switch to instead call autoSizeColumn(int,boolean), and pass in a true value. This will tell POI to take account of merged cells during the sizing. So, your code should instead be:

sheet.autoSizeColumn(0, true);
Gagravarr
  • 47,320
  • 10
  • 111
  • 156