fix for 13921, sync from branch
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353412 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
560fb1aa8c
commit
3c78911f82
@ -194,10 +194,22 @@ public class BoundSheetRecord
|
|||||||
/**
|
/**
|
||||||
* Set the sheetname for this sheet. (this appears in the tabs at the bottom)
|
* Set the sheetname for this sheet. (this appears in the tabs at the bottom)
|
||||||
* @param sheetname the name of the sheet
|
* @param sheetname the name of the sheet
|
||||||
|
* @thows IllegalArgumentException if sheet name will cause excel to crash.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public void setSheetname( String sheetname )
|
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;
|
field_5_sheetname = sheetname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,6 +271,8 @@ public class HSSFWorkbook
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 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 number (0 based)
|
||||||
* @param sheet name
|
* @param sheet name
|
||||||
*/
|
*/
|
||||||
@ -371,7 +373,11 @@ public class HSSFWorkbook
|
|||||||
windowTwo.setPaged(sheets.size() == 1);
|
windowTwo.setPaged(sheets.size() == 1);
|
||||||
|
|
||||||
sheets.add(clonedSheet);
|
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 clonedSheet;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -93,4 +93,24 @@ public class TestBoundSheetRecord
|
|||||||
assertEquals(" 2 + 2 + 4 + 2 + 1 + 1 + len(str) * 2", 24, record.getRecordSize());
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ public class TestCloneSheet extends TestCase {
|
|||||||
s.addMergedRegion(new Region((short)0,(short)0,(short)1,(short)1));
|
s.addMergedRegion(new Region((short)0,(short)0,(short)1,(short)1));
|
||||||
b.cloneSheet(0);
|
b.cloneSheet(0);
|
||||||
}
|
}
|
||||||
catch(Exception e){fail(e.getMessage());}
|
catch(Exception e){e.printStackTrace();fail(e.getMessage());}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user