/**
* Set the sheetname for this sheet. (this appears in the tabs at the bottom)
* @param sheetname the name of the sheet
+ * @thows IllegalArgumentException if sheet name will cause excel to crash.
*/
public void setSheetname( String sheetname )
{
+
+ if ((sheetname == null) || (sheetname.length()==0)
+ || (sheetname.length()>31)
+ || (sheetname.indexOf("/") > -1)
+ || (sheetname.indexOf("\\") > -1)
+ || (sheetname.indexOf("?") > -1)
+ || (sheetname.indexOf("*") > -1)
+ || (sheetname.indexOf("]") > -1)
+ || (sheetname.indexOf("[") > -1) ){
+ throw new IllegalArgumentException("Sheet name cannot be blank, greater than 31 chars, or contain any of /\\*?[]");
+ }
field_5_sheetname = sheetname;
}
/**
- * set the sheet name.
+ * set the sheet name.
+ * Will throw IllegalArgumentException if the name is greater than 31 chars
+ * or contains /\?*[]
* @param sheet number (0 based)
* @param sheet name
*/
windowTwo.setPaged(sheets.size() == 1);
sheets.add(clonedSheet);
- workbook.setSheetName(sheets.size()-1, srcName+"[1]");
+ if (srcName.length()<28) {
+ workbook.setSheetName(sheets.size()-1, srcName+"(2)");
+ }else {
+ workbook.setSheetName(sheets.size()-1,srcName.substring(0,28)+"(2)");
+ }
return clonedSheet;
}
return null;
assertEquals(" 2 + 2 + 4 + 2 + 1 + 1 + len(str) * 2", 24, record.getRecordSize());
}
+
+ public void testName() {
+ BoundSheetRecord record = new BoundSheetRecord();
+ record.setSheetname("1234567890223456789032345678904");
+ assertTrue("Success", true);
+ try {
+ record.setSheetname("12345678902234567890323456789042");
+ assertTrue("Should have thrown IllegalArgumentException, but didnt", false);
+ } catch (IllegalArgumentException e) {
+ assertTrue("succefully threw exception",true);
+ }
+
+ try {
+ record.setSheetname("s//*s");
+ assertTrue("Should have thrown IllegalArgumentException, but didnt", false);
+ } catch (IllegalArgumentException e) {
+ assertTrue("succefully threw exception",true);
+ }
+
+ }
}
s.addMergedRegion(new Region((short)0,(short)0,(short)1,(short)1));
b.cloneSheet(0);
}
- catch(Exception e){fail(e.getMessage());}
+ catch(Exception e){e.printStackTrace();fail(e.getMessage());}
}
}