aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/poi/hssf/usermodel
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/org/apache/poi/hssf/usermodel')
-rw-r--r--src/java/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java10
-rw-r--r--src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java28
-rw-r--r--src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java32
3 files changed, 26 insertions, 44 deletions
diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java b/src/java/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java
index 97e605928d..4fb31606ea 100644
--- a/src/java/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java
+++ b/src/java/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java
@@ -43,19 +43,11 @@ public class HSSFFormulaEvaluator extends FormulaEvaluator {
return new FormulaParser(formula, workbook);
}
-
/**
* debug method
- *
- * @param formula
- * @param sheet
- * @param workbook
*/
void inspectPtgs(String formula) {
- HSSFWorkbook hssfWb = (HSSFWorkbook)_workbook;
- FormulaParser fp = new FormulaParser(formula, hssfWb);
- fp.parse();
- Ptg[] ptgs = fp.getRPNPtg();
+ Ptg[] ptgs = FormulaParser.parse(formula, _workbook);
System.out.println("<ptg-group>");
for (int i = 0, iSize = ptgs.length; i < iSize; i++) {
System.out.println("<ptg>");
diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java b/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
index 280284439b..6670b20414 100644
--- a/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
+++ b/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
@@ -35,17 +35,11 @@ import org.apache.poi.hssf.model.FormulaParser;
import org.apache.poi.hssf.model.Sheet;
import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.record.CellValueRecordInterface;
-import org.apache.poi.hssf.record.CFRuleRecord;
-import org.apache.poi.hssf.record.DVALRecord;
import org.apache.poi.hssf.record.DVRecord;
-import org.apache.poi.hssf.record.EOFRecord;
import org.apache.poi.hssf.record.EscherAggregate;
-import org.apache.poi.hssf.record.HCenterRecord;
-import org.apache.poi.hssf.record.PageBreakRecord;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.record.RowRecord;
import org.apache.poi.hssf.record.SCLRecord;
-import org.apache.poi.hssf.record.VCenterRecord;
import org.apache.poi.hssf.record.WSBoolRecord;
import org.apache.poi.hssf.record.WindowTwoRecord;
import org.apache.poi.hssf.record.aggregates.DataValidityTable;
@@ -385,6 +379,22 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
DVRecord dvRecord = dataValidation.createDVRecord(workbook);
dvt.addDataValidation(dvRecord);
}
+
+ /**
+ * Get the DVRecords objects that are associated to this sheet
+ * @return a list of DVRecord instances
+ */
+ public List getDVRecords() {
+ List dvRecords = new ArrayList();
+ List records = sheet.getRecords();
+
+ for(int index=0; index<records.size(); index++) {
+ if(records.get(index) instanceof DVRecord) {
+ dvRecords.add(records.get(index));
+ }
+ }
+ return dvRecords;
+ }
/**
@@ -1273,11 +1283,9 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
// Since it's a formula cell, process the
// formula string, and look to see if
// it contains any references
- FormulaParser fp = new FormulaParser(c.getCellFormula(), workbook);
- fp.parse();
// Look for references, and update if needed
- Ptg[] ptgs = fp.getRPNPtg();
+ Ptg[] ptgs = FormulaParser.parse(c.getCellFormula(), workbook);
boolean changed = false;
for(int i=0; i<ptgs.length; i++) {
if(ptgs[i] instanceof RefPtg) {
@@ -1294,7 +1302,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
// re-create the formula string
if(changed) {
c.setCellFormula(
- fp.toFormulaString(ptgs)
+ FormulaParser.toFormulaString(workbook, ptgs)
);
}
}
diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
index eb1546ade9..801b298783 100644
--- a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
+++ b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
@@ -931,35 +931,17 @@ public class HSSFWorkbook extends POIDocument implements org.apache.poi.ss.userm
Stack ptgs = new Stack();
if (settingRowAndColumn) {
- final int exprsSize = 2 * 11 + 1; // Area3DPtg.SIZE + UnionPtg.SIZE
+ final int exprsSize = 2 * 11 + 1; // 2 * Area3DPtg.SIZE + UnionPtg.SIZE
ptgs.add(new MemFuncPtg(exprsSize));
}
- if (startColumn >= 0)
- {
- Area3DPtg colArea = new Area3DPtg();
- colArea.setExternSheetIndex(externSheetIndex);
- colArea.setFirstColumn((short)startColumn);
- colArea.setLastColumn((short)endColumn);
- colArea.setFirstRow(0);
- colArea.setLastRow(MAX_ROW);
- colArea.setFirstColRelative(false);
- colArea.setLastColRelative(false);
- colArea.setFirstRowRelative(false);
- colArea.setLastRowRelative(false);
+ if (startColumn >= 0) {
+ Area3DPtg colArea = new Area3DPtg(0, MAX_ROW, startColumn, endColumn,
+ false, false, false, false, externSheetIndex);
ptgs.add(colArea);
}
- if (startRow >= 0)
- {
- Area3DPtg rowArea = new Area3DPtg();
- rowArea.setExternSheetIndex(externSheetIndex);
- rowArea.setFirstColumn((short)0);
- rowArea.setLastColumn(MAX_COLUMN);
- rowArea.setFirstRow(startRow);
- rowArea.setLastRow(endRow);
- rowArea.setFirstColRelative(false);
- rowArea.setLastColRelative(false);
- rowArea.setFirstRowRelative(false);
- rowArea.setLastRowRelative(false);
+ if (startRow >= 0) {
+ Area3DPtg rowArea = new Area3DPtg(startRow, endRow, 0, MAX_COLUMN,
+ false, false, false, false, externSheetIndex);
ptgs.add(rowArea);
}
if (settingRowAndColumn)