diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java b/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java index 9d6298300..6ba0c63f7 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java @@ -182,6 +182,7 @@ public class HSSFCell //protected HSSFCell(Workbook book, Sheet sheet, short row, short col) protected HSSFCell(Workbook book, Sheet sheet, int row, short col) { + checkBounds(col); cellNum = col; this.row = row; cellStyle = null; @@ -221,6 +222,7 @@ public class HSSFCell protected HSSFCell(Workbook book, Sheet sheet, int row, short col, int type) { + checkBounds(col); cellNum = col; this.row = row; cellType = type; @@ -953,4 +955,14 @@ public class HSSFCell { return record; } + + /** + * @throws RuntimeException if the bounds are exceeded. + */ + private void checkBounds(int cellNum) { + if (cellNum > 255) { + throw new RuntimeException("You cannot have more than 255 columns "+ + "in a given row (IV). Because Excel can't handle it"); + } + } }