In a Java program which exports an xls file, let's say that we have the following code: HSSFWorkbook wb = ... //initialization goes here HSSFSheet sheet = wb.getSheetAt(0); sheet.addMergedRegion(new Region(1, (short)3, 1, (short)2)); //do other things there and in the end call wb.write(some FileOutputStream file) If you open the exported file with Excel 2003 SP2 you will not receive any error or warning message, and everything seems to be ok. If you open the exported file with Excel 2003 SP3 you get an error message that Excel found unreadable content in that file. If you want it to recover the file, all the exported data (numbers, Strings...) are present in the exported file, but all cell styles, merged cells, preferred width for columns are lost. Sincerely, I would prefer an IllegalArgumentException thrown by addMergedRegion if colFrom is greater than colTo instead of this behavior.
An IllegalArgumentException will now be thrown