diff options
author | Nick Burch <nick@apache.org> | 2007-09-24 12:57:38 +0000 |
---|---|---|
committer | Nick Burch <nick@apache.org> | 2007-09-24 12:57:38 +0000 |
commit | 66ec0e4a515993d642723cf818fbcc7938b37564 (patch) | |
tree | f9cbfa5ef111342b95398dd30fedc313a5cf3f6f /src/java/org | |
parent | f4d92df6b320add9363f229b4c2a65a5dfc6cdfd (diff) | |
download | poi-66ec0e4a515993d642723cf818fbcc7938b37564.tar.gz poi-66ec0e4a515993d642723cf818fbcc7938b37564.zip |
Allow HSSFSheet to get at its parent workbook, and add HSSFWorkbook.getSheetIndex(HSSFSheet)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@578795 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org')
-rw-r--r-- | src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java | 19 | ||||
-rw-r--r-- | src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java | 22 |
2 files changed, 29 insertions, 12 deletions
diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java b/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java index bf5246cb28..9d7c287cb8 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java @@ -84,6 +84,7 @@ public class HSSFSheet private Sheet sheet; private TreeMap rows; private Workbook book; + private HSSFWorkbook workbook; private int firstrow; private int lastrow; private static POILogger log = POILogFactory.getLogger(HSSFSheet.class); @@ -92,36 +93,38 @@ public class HSSFSheet * Creates new HSSFSheet - called by HSSFWorkbook to create a sheet from * scratch. You should not be calling this from application code (its protected anyhow). * - * @param book - lowlevel Workbook object associated with the sheet. + * @param workbook - The HSSF Workbook object associated with the sheet. * @see org.apache.poi.hssf.usermodel.HSSFWorkbook#createSheet() */ - protected HSSFSheet(Workbook book) + protected HSSFSheet(HSSFWorkbook workbook) { sheet = Sheet.createSheet(); rows = new TreeMap(); // new ArrayList(INITIAL_CAPACITY); - this.book = book; + this.workbook = workbook; + this.book = workbook.getWorkbook(); } /** * Creates an HSSFSheet representing the given Sheet object. Should only be * called by HSSFWorkbook when reading in an exisiting file. * - * @param book - lowlevel Workbook object associated with the sheet. + * @param workbook - The HSSF Workbook object associated with the sheet. * @param sheet - lowlevel Sheet object this sheet will represent * @see org.apache.poi.hssf.usermodel.HSSFWorkbook#createSheet() */ - protected HSSFSheet(Workbook book, Sheet sheet) + protected HSSFSheet(HSSFWorkbook workbook, Sheet sheet) { this.sheet = sheet; rows = new TreeMap(); - this.book = book; + this.workbook = workbook; + this.book = workbook.getWorkbook(); setPropertiesFromSheet(sheet); } - HSSFSheet cloneSheet(Workbook book) { - return new HSSFSheet(book, sheet.cloneSheet()); + HSSFSheet cloneSheet(HSSFWorkbook workbook) { + return new HSSFSheet(workbook, sheet.cloneSheet()); } diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java index 8748270998..691dc1e4d0 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java @@ -223,7 +223,7 @@ public class HSSFWorkbook extends POIDocument break; } - HSSFSheet hsheet = new HSSFSheet(workbook, sheet); + HSSFSheet hsheet = new HSSFSheet(this, sheet); sheets.add(hsheet); @@ -462,6 +462,20 @@ public class HSSFWorkbook extends POIDocument return retval; } + /** Returns the index of the given sheet + * @param sheet the sheet to look up + * @return index of the sheet (0 based) + */ + public int getSheetIndex(HSSFSheet sheet) + { + for(int i=0; i<sheets.size(); i++) { + if(sheets.get(i) == sheet) { + return i; + } + } + return -1; + } + /** * create an HSSFSheet for this HSSFWorkbook, adds it to the sheets and returns * the high level representation. Use this to create new sheets. @@ -474,7 +488,7 @@ public class HSSFWorkbook extends POIDocument // if (getNumberOfSheets() == 3) // throw new RuntimeException("You cannot have more than three sheets in HSSF 1.0"); - HSSFSheet sheet = new HSSFSheet(workbook); + HSSFSheet sheet = new HSSFSheet(this); sheets.add(sheet); workbook.setSheetName(sheets.size() - 1, @@ -495,7 +509,7 @@ public class HSSFWorkbook extends POIDocument HSSFSheet srcSheet = (HSSFSheet)sheets.get(sheetNum); String srcName = workbook.getSheetName(sheetNum); if (srcSheet != null) { - HSSFSheet clonedSheet = srcSheet.cloneSheet(workbook); + HSSFSheet clonedSheet = srcSheet.cloneSheet(this); WindowTwoRecord windowTwo = (WindowTwoRecord) clonedSheet.getSheet().findFirstRecordBySid(WindowTwoRecord.sid); windowTwo.setSelected(sheets.size() == 1); windowTwo.setPaged(sheets.size() == 1); @@ -534,7 +548,7 @@ public class HSSFWorkbook extends POIDocument if (workbook.doesContainsSheetName( sheetname, sheets.size() )) throw new IllegalArgumentException( "The workbook already contains a sheet of this name" ); - HSSFSheet sheet = new HSSFSheet(workbook); + HSSFSheet sheet = new HSSFSheet(this); sheets.add(sheet); workbook.setSheetName(sheets.size() - 1, sheetname); |