hf.setOddFooter("&C&\"Arial\"&10Page &P");
}
+ protected CTSheet getSheet() {
+ return this.sheet;
+ }
+
protected CTWorksheet getWorksheet() {
return this.worksheet;
}
}
return views.getSheetViewArray(views.getSheetViewArray().length - 1);
}
+
+ protected XSSFSheet cloneSheet() {
+ return new XSSFSheet((CTSheet) sheet.copy());
+ }
+
}
}
public Sheet cloneSheet(int sheetNum) {
- // TODO Auto-generated method stub
+ XSSFSheet srcSheet = sheets.get(sheetNum);
+ String srcName = getSheetName(sheetNum);
+ if (srcSheet != null) {
+ XSSFSheet clonedSheet = srcSheet.cloneSheet();
+
+ sheets.add(clonedSheet);
+ CTSheet newcts = this.workbook.getSheets().addNewSheet();
+ newcts.set(clonedSheet.getSheet());
+
+ int i = 1;
+ while (true) {
+ //Try and find the next sheet name that is unique
+ String name = srcName;
+ String index = Integer.toString(i++);
+ if (name.length() + index.length() + 2 < 31) {
+ name = name + "("+index+")";
+ } else {
+ name = name.substring(0, 31 - index.length() - 2) + "(" +index + ")";
+ }
+
+ //If the sheet name is unique, then set it otherwise move on to the next number.
+ if (getSheetIndex(name) == -1) {
+ setSheetName(sheets.size() - 1, name);
+ break;
+ }
+ }
+ return clonedSheet;
+ }
return null;
}
}
public String getSheetName(int sheet) {
- // TODO Auto-generated method stub
- return null;
+ return this.workbook.getSheets().getSheetArray(sheet).getName();
}
public void insertChartRecord() {
}
public void setSheetName(int sheet, String name) {
- // TODO Auto-generated method stub
-
+ this.workbook.getSheets().getSheetArray(sheet).setName(name);
}
public void setSheetName(int sheet, String name, short encoding) {
- // TODO Auto-generated method stub
-
+ this.workbook.getSheets().getSheetArray(sheet).setName(name);
}
public void setSheetOrder(String sheetname, int pos) {
workbook.setSelectedTab((short) 1);
assertEquals(1, workbook.getSelectedTab());
}
+
+ public void testSetSheetName() throws Exception {
+ XSSFWorkbook workbook = new XSSFWorkbook();
+ Sheet sheet1 = workbook.createSheet("sheet1");
+ assertEquals("sheet1", workbook.getSheetName(0));
+ workbook.setSheetName(0, "sheet2");
+ assertEquals("sheet2", workbook.getSheetName(0));
+ }
+
+ public void testCloneSheet() throws Exception {
+ XSSFWorkbook workbook = new XSSFWorkbook();
+ Sheet sheet1 = workbook.createSheet("sheet");
+ Sheet sheet2 = workbook.cloneSheet(0);
+ assertEquals(2, workbook.getNumberOfSheets());
+ assertEquals("sheet(1)", workbook.getSheetName(1));
+ workbook.setSheetName(1, "clonedsheet");
+ Sheet sheet3 = workbook.cloneSheet(1);
+ assertEquals(3, workbook.getNumberOfSheets());
+ assertEquals("clonedsheet(1)", workbook.getSheetName(2));
+ }
}