aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2007-09-24 12:57:38 +0000
committerNick Burch <nick@apache.org>2007-09-24 12:57:38 +0000
commit66ec0e4a515993d642723cf818fbcc7938b37564 (patch)
treef9cbfa5ef111342b95398dd30fedc313a5cf3f6f /src/java/org
parentf4d92df6b320add9363f229b4c2a65a5dfc6cdfd (diff)
downloadpoi-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.java19
-rw-r--r--src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java22
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);