More internal method signature updates, for HSSF external sheets being possible ranges, for #55906
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1613307 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7f6ba5513c
commit
e27a6e5466
@ -1851,13 +1851,24 @@ public final class InternalWorkbook {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finds the sheet index for a particular external sheet number.
|
* Finds the (first) sheet index for a particular external sheet number.
|
||||||
* @param externSheetNumber The external sheet number to convert
|
* @param externSheetNumber The external sheet number to convert
|
||||||
* @return The index to the sheet found.
|
* @return The index to the sheet found.
|
||||||
*/
|
*/
|
||||||
public int getSheetIndexFromExternSheetIndex(int externSheetNumber)
|
public int getFirstSheetIndexFromExternSheetIndex(int externSheetNumber)
|
||||||
{
|
{
|
||||||
return linkTable.getSheetIndexFromExternSheetIndex(externSheetNumber);
|
return linkTable.getFirstInternalSheetIndexForExtIndex(externSheetNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the last sheet index for a particular external sheet number,
|
||||||
|
* which may be the same as the first (except for multi-sheet references)
|
||||||
|
* @param externSheetNumber The external sheet number to convert
|
||||||
|
* @return The index to the sheet found.
|
||||||
|
*/
|
||||||
|
public int getLastSheetIndexFromExternSheetIndex(int externSheetNumber)
|
||||||
|
{
|
||||||
|
return linkTable.getLastInternalSheetIndexForExtIndex(externSheetNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** returns the extern sheet number for specific sheet number ,
|
/** returns the extern sheet number for specific sheet number ,
|
||||||
|
@ -425,6 +425,9 @@ final class LinkTable {
|
|||||||
* @return -1 if the reference is to an external book
|
* @return -1 if the reference is to an external book
|
||||||
*/
|
*/
|
||||||
public int getFirstInternalSheetIndexForExtIndex(int extRefIndex) {
|
public int getFirstInternalSheetIndexForExtIndex(int extRefIndex) {
|
||||||
|
if (extRefIndex >= _externSheetRecord.getNumOfRefs() || extRefIndex < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return _externSheetRecord.getFirstSheetIndexFromRefIndex(extRefIndex);
|
return _externSheetRecord.getFirstSheetIndexFromRefIndex(extRefIndex);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -432,6 +435,9 @@ final class LinkTable {
|
|||||||
* @return -1 if the reference is to an external book
|
* @return -1 if the reference is to an external book
|
||||||
*/
|
*/
|
||||||
public int getLastInternalSheetIndexForExtIndex(int extRefIndex) {
|
public int getLastInternalSheetIndexForExtIndex(int extRefIndex) {
|
||||||
|
if (extRefIndex >= _externSheetRecord.getNumOfRefs() || extRefIndex < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return _externSheetRecord.getLastSheetIndexFromRefIndex(extRefIndex);
|
return _externSheetRecord.getLastSheetIndexFromRefIndex(extRefIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -447,13 +453,6 @@ final class LinkTable {
|
|||||||
_externSheetRecord.removeSheet(sheetIdx);
|
_externSheetRecord.removeSheet(sheetIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSheetIndexFromExternSheetIndex(int extRefIndex) {
|
|
||||||
if (extRefIndex >= _externSheetRecord.getNumOfRefs() || extRefIndex < 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return _externSheetRecord.getFirstSheetIndexFromRefIndex(extRefIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int checkExternSheet(int sheetIndex) {
|
public int checkExternSheet(int sheetIndex) {
|
||||||
int thisWbIndex = -1; // this is probably always zero
|
int thisWbIndex = -1; // this is probably always zero
|
||||||
for (int i=0; i<_externalBookBlocks.length; i++) {
|
for (int i=0; i<_externalBookBlocks.length; i++) {
|
||||||
|
@ -116,7 +116,8 @@ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E
|
|||||||
return new HSSFEvaluationSheet(_uBook.getSheetAt(sheetIndex));
|
return new HSSFEvaluationSheet(_uBook.getSheetAt(sheetIndex));
|
||||||
}
|
}
|
||||||
public int convertFromExternSheetIndex(int externSheetIndex) {
|
public int convertFromExternSheetIndex(int externSheetIndex) {
|
||||||
return _iBook.getSheetIndexFromExternSheetIndex(externSheetIndex);
|
// TODO Update this to expose first and last sheet indexes
|
||||||
|
return _iBook.getFirstSheetIndexFromExternSheetIndex(externSheetIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExternalSheet getExternalSheet(int externSheetIndex) {
|
public ExternalSheet getExternalSheet(int externSheetIndex) {
|
||||||
@ -133,12 +134,17 @@ public final class HSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is it a single local sheet, or a range?
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
// Look up the local sheet
|
// Look up the local sheet
|
||||||
String sheetName = getSheetName(localSheetIndex);
|
String sheetName = getSheetName(localSheetIndex);
|
||||||
|
|
||||||
|
// Is it a single local sheet, or a range?
|
||||||
|
int lastLocalSheetIndex = _iBook.getLastSheetIndexFromExternSheetIndex(externSheetIndex);
|
||||||
|
if (lastLocalSheetIndex == localSheetIndex) {
|
||||||
sheet = new ExternalSheet(null, sheetName);
|
sheet = new ExternalSheet(null, sheetName);
|
||||||
|
} else {
|
||||||
|
String lastSheetName = getSheetName(lastLocalSheetIndex);
|
||||||
|
sheet = new ExternalSheetRange(null, sheetName, lastSheetName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return sheet;
|
return sheet;
|
||||||
}
|
}
|
||||||
|
@ -845,8 +845,14 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
|
|||||||
return _sheets.size();
|
return _sheets.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated for POI internal use only (formula parsing). This method is likely to
|
||||||
|
* be removed in future versions of POI.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public int getSheetIndexFromExternSheetIndex(int externSheetNumber) {
|
public int getSheetIndexFromExternSheetIndex(int externSheetNumber) {
|
||||||
return workbook.getSheetIndexFromExternSheetIndex(externSheetNumber);
|
// TODO - don't expose internal ugliness like externSheet indexes to the user model API
|
||||||
|
return workbook.getFirstSheetIndexFromExternSheetIndex(externSheetNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
private HSSFSheet[] getSheets() {
|
private HSSFSheet[] getSheets() {
|
||||||
|
Loading…
Reference in New Issue
Block a user