import org.apache.poi.hssf.record.formula.*;
import org.apache.poi.hssf.record.formula.function.FunctionMetadata;
import org.apache.poi.hssf.record.formula.function.FunctionMetadataRegistry;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
/**
* This class parses a formula string into a List of tokens in RPN order.
*/
private char look;
- private HSSFWorkbook book;
+ private Workbook book;
/**
* model.Workbook, then use the convenience method on
* usermodel.HSSFFormulaEvaluator
*/
- public FormulaParser(String formula, HSSFWorkbook book){
+ public FormulaParser(String formula, Workbook book){
formulaString = formula;
pointer=0;
this.book = book;
formulaLength = formulaString.length();
}
- public static Ptg[] parse(String formula, HSSFWorkbook book) {
+ public static Ptg[] parse(String formula, Workbook book) {
FormulaParser fp = new FormulaParser(formula, book);
fp.parse();
return fp.getRPNPtg();
Match('!');
String sheetName = name;
String first = GetName();
- short externIdx = book.getExternalSheetIndex(book.getSheetIndex(sheetName));
+ short externIdx = (short)book.getExternalSheetIndex(book.getSheetIndex(sheetName));
if (look == ':') {
Match(':');
String second=GetName();
* @param lptgs list of Ptg, can be null or empty
* @return a human readable String
*/
- public static String toFormulaString(HSSFWorkbook book, List lptgs) {
+ public static String toFormulaString(Workbook book, List lptgs) {
String retval = null;
if (lptgs == null || lptgs.size() == 0) return "#NAME";
Ptg[] ptgs = new Ptg[lptgs.size()];
* @param ptgs array of Ptg, can be null or empty
* @return a human readable String
*/
- public static String toFormulaString(HSSFWorkbook book, Ptg[] ptgs) {
+ public static String toFormulaString(Workbook book, Ptg[] ptgs) {
if (ptgs == null || ptgs.length == 0) {
// TODO - what is the justification for returning "#NAME" (which is not "#NAME?", btw)
return "#NAME";
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.formula.function.FunctionMetadata;
import org.apache.poi.hssf.record.formula.function.FunctionMetadataRegistry;
return field_2_fnc_index == FUNCTION_INDEX_EXTERNAL;
}
- public String toFormulaString(HSSFWorkbook book) {
+ public String toFormulaString(Workbook book) {
return getName();
}
*/
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
}
/** Implementation of method from Ptg */
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "+";
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.AreaReference;
import org.apache.poi.hssf.util.CellReference;
* @return text representation of this area reference that can be used in text
* formulas. The sheet name will get properly delimited if required.
*/
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
// First do the sheet name
StringBuffer retval = new StringBuffer();
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.AreaReference;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
/**
* Specifies a rectangular area of cells A1:A4 for instance.
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.BitField;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
array[offset] = (byte) (sid + ptgClass);
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "#REF!";
}
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.AreaReference;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
/**
* Specifies a rectangular area of cells A1:A4 for instance.
return "AreaNAPtg";
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
throw new RuntimeException("Coding Error: This method should never be called. This ptg should be converted");
}
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.AreaReference;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
/**
* Specifies a rectangular area of cells A1:A4 for instance.
return "AreaNPtg";
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
throw new RuntimeException("Coding Error: This method should never be called. This ptg should be converted");
}
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.AreaReference;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
/**
* Specifies a rectangular area of cells A1:A4 for instance.
return "AreaNVPtg";
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
throw new RuntimeException("Coding Error: This method should never be called. This ptg should be converted");
}
import org.apache.poi.hssf.util.AreaReference;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
field_4_last_column = column;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return toFormulaString(this, book);
}
- protected static String toFormulaString(AreaI area, HSSFWorkbook book) {
+ protected static String toFormulaString(AreaI area, Workbook book) {
CellReference topLeft = new CellReference(area.getFirstRow(),area.getFirstColumn(),!area.isFirstRowRelative(),!area.isFirstColRelative());
CellReference botRight = new CellReference(area.getLastRow(),area.getLastColumn(),!area.isLastRowRelative(),!area.isLastColRelative());
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.AreaReference;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
/**
* Specifies a rectangular area of cells A1:A4 for instance.
import org.apache.poi.util.StringUtil;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordFormatException;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.SSTRecord;
return size;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
StringBuffer b = new StringBuffer();
b.append("{");
import org.apache.poi.util.StringUtil;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordFormatException;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.SSTRecord;
import org.apache.poi.util.StringUtil;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordFormatException;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.SSTRecord;
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.util.LittleEndian;
if(space.isSet(field_1_options)) {
return operands[ 0 ];
} else if (optiIf.isSet(field_1_options)) {
- return toFormulaString((HSSFWorkbook)null) + "(" + operands[ 0 ] +")";
+ return toFormulaString((Workbook)null) + "(" + operands[ 0 ] +")";
} else if (optGoto.isSet(field_1_options)) {
- return toFormulaString((HSSFWorkbook)null) + operands[0]; //goto isn't a real formula element should not show up
+ return toFormulaString((Workbook)null) + operands[0]; //goto isn't a real formula element should not show up
} else {
- return toFormulaString((HSSFWorkbook)null) + "(" + operands[ 0 ] + ")";
+ return toFormulaString((Workbook)null) + "(" + operands[ 0 ] + ")";
}
}
return -1;
}
- public String toFormulaString(HSSFWorkbook book) {
+ public String toFormulaString(Workbook book) {
if(semiVolatile.isSet(field_1_options)) {
return "ATTR(semiVolatile)";
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return SIZE;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return field_1_value ? "TRUE" : "FALSE";
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return 2;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return CONCAT;
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return 2;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "/";
}
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append(toFormulaString((HSSFWorkbook)null));
+ buffer.append(toFormulaString((Workbook)null));
buffer.append(operands[ 1 ]);
return buffer.toString();
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return 2;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "=";
}
buffer.append(operands[ 0 ]);
- buffer.append(toFormulaString((HSSFWorkbook)null));
+ buffer.append(toFormulaString((Workbook)null));
buffer.append(operands[ 1 ]);
return buffer.toString();
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
array[offset + 1] = (byte)field_1_error_code;
}
- public String toFormulaString(HSSFWorkbook book) {
+ public String toFormulaString(Workbook book) {
return HSSFErrorConstants.getText(field_1_error_code);
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordFormatException;
import org.apache.poi.hssf.record.RecordInputStream;
return field_2_first_col;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
throw new RecordFormatException("Coding Error: Expected ExpPtg to be converted from Shared to Non-Shared Formula by ValueRecordsAggregate, but it wasn't");
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
return 2;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return ">=";
}
buffer.append(operands[ 0 ]);
- buffer.append(toFormulaString((HSSFWorkbook)null));
+ buffer.append(toFormulaString((Workbook)null));
buffer.append(operands[ 1 ]);
return buffer.toString();
import java.util.List;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
* Implementation of method from Ptg
* @param book the Sheet References
*/
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return this.GREATERTHAN;
}
package org.apache.poi.hssf.record.formula;
import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return SIZE;
}
- public String toFormulaString(HSSFWorkbook book) {
+ public String toFormulaString(Workbook book) {
return String.valueOf(getValue());
}
public byte getDefaultOperandClass() {
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
}
/** Implementation of method from Ptg */
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return " ";
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
return 2;
}
- public String toFormulaString( HSSFWorkbook book )
+ public String toFormulaString( Workbook book )
{
return "<=";
}
{
StringBuffer buffer = new StringBuffer();
buffer.append( operands[0] );
- buffer.append( toFormulaString( (HSSFWorkbook) null ) );
+ buffer.append( toFormulaString( (Workbook) null ) );
buffer.append( operands[1] );
return buffer.toString();
}
import java.util.List;
//POI
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
* Implementation of method from Ptg
* @param book the Sheet References
*/
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return this.LESSTHAN;
}
package org.apache.poi.hssf.record.formula;
import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return SIZE;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return ""; // TODO: Not sure how to format this. -- DN
}
package org.apache.poi.hssf.record.formula;
import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
array[offset] = (byte) (sid + ptgClass);
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "ERR#";
}
package org.apache.poi.hssf.record.formula;
import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
LittleEndian.putShort( array, offset + 1, (short)field_1_len_ref_subexpression );
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "";
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return " ";
}
==================================================================== */
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "*";
}
{
StringBuffer buffer = new StringBuffer();
- buffer.append(operands[ 0 ].toFormulaString((HSSFWorkbook)null));
+ buffer.append(operands[ 0 ].toFormulaString((Workbook)null));
buffer.append("*");
- buffer.append(operands[ 1 ].toFormulaString((HSSFWorkbook)null));
+ buffer.append(operands[ 1 ].toFormulaString((Workbook)null));
return buffer.toString();
}
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append(toFormulaString((HSSFWorkbook)null));
+ buffer.append(toFormulaString((Workbook)null));
buffer.append(operands[ 1 ]);
return buffer.toString();
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hssf.usermodel.HSSFName;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.NameRecord;
import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.ss.usermodel.Name;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.util.LittleEndian;
/**
*
* in the workbook. The search for the name record is case insensitive. If it is not found,
* it gets created.
*/
- public NamePtg(String name, HSSFWorkbook book) {
+ public NamePtg(String name, Workbook book) {
field_1_label_index = (short)(1+getOrCreateNameRecord(book, name)); // convert to 1-based
}
/**
* @return zero based index of the found or newly created defined name record.
*/
- private static final int getOrCreateNameRecord(HSSFWorkbook book, String name) {
+ private static final int getOrCreateNameRecord(Workbook book, String name) {
// perhaps this logic belongs in Workbook?
int countNames = book.getNumberOfNames();
for (int i = 0; i < countNames; i++) {
}
}
- HSSFName nameObj = book.createName();
+ Name nameObj = book.createName();
nameObj.setNameName(name);
return countNames;
return SIZE;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return book.getNameName(field_1_label_index - 1);
}
package org.apache.poi.hssf.record.formula;
import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return SIZE;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
// -1 to convert definedNameIndex from 1-based to zero-based
return book.resolveNameXText(field_1_ixals, field_2_ilbl-1);
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return 2;
}
- public String toFormulaString( HSSFWorkbook book )
+ public String toFormulaString( Workbook book )
{
return "<>";
}
buffer.append( operands[0] );
- buffer.append( toFormulaString( (HSSFWorkbook) null ) );
+ buffer.append( toFormulaString( (Workbook) null ) );
buffer.append( operands[1] );
return buffer.toString();
package org.apache.poi.hssf.record.formula;
import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return SIZE;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "" + getValue();
}
import java.util.List;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return 1;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "()";
}
*/
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
}
/** Implementation of method from Ptg */
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "%";
}
import java.util.List;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return 2;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "^";
}
buffer.append(operands[ 0 ]);
- buffer.append(toFormulaString((HSSFWorkbook)null));
+ buffer.append(toFormulaString((Workbook)null));
buffer.append(operands[ 1 ]);
return buffer.toString();
}
import java.util.ArrayList;
import java.util.Stack;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
/**
* return a string representation of this token alone
*/
- public abstract String toFormulaString(HSSFWorkbook book);
+ public abstract String toFormulaString(Workbook book);
/**
* dump a debug representation (hexdump) to a string
*/
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
}
/** Implementation of method from Ptg */
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return ":";
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
-import org.apache.poi.hssf.util.CellReference;
import org.apache.poi.hssf.util.RangeAddress;
-import org.apache.poi.hssf.util.SheetReferences;
+import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.ss.util.SheetReferences;
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
import org.apache.poi.util.LittleEndian;
}
// TODO - find a home for this method
- // There is already a method on HSSFWorkbook called getSheetName but it seems to do something different.
- static String getSheetName(HSSFWorkbook book, int externSheetIndex) {
+ // There is already a method on Workbook called getSheetName but it seems to do something different.
+ static String getSheetName(Workbook book, int externSheetIndex) {
// TODO - there are 3 ways this method can return null. Is each valid?
if (book == null) {
return null;
* @return text representation of this cell reference that can be used in text
* formulas. The sheet name will get properly delimited if required.
*/
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
StringBuffer retval = new StringBuffer();
String sheetName = getSheetName(book, field_1_index_extern_sheet);
import org.apache.poi.util.BitField;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return SIZE;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
//TODO -- should we store a cellreference instance in this ptg?? but .. memory is an issue, i believe!
return "#REF!";
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
/**
* RefNAPtg
return "RefNAPtg";
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
throw new RuntimeException("Coding Error: This method should never be called. This ptg should be converted");
}
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
/**
* RefNPtg
return "RefNPtg";
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
throw new RuntimeException("Coding Error: This method should never be called. This ptg should be converted");
}
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
/**
* RefNVPtg
return "RefNVPtg";
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
throw new RuntimeException("Coding Error: This method should never be called. This ptg should be converted");
}
import org.apache.poi.util.BitFieldFactory;
import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return SIZE;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
//TODO -- should we store a cellreference instance in this ptg?? but .. memory is an issue, i believe!
return (new CellReference(getRowAsInt(),getColumn(),!isRowRelative(),!isColRelative())).formatAsString();
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
import org.apache.poi.util.StringUtil;
}
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "\""+getValue()+"\"";
}
package org.apache.poi.hssf.record.formula;
import java.util.List;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return 2;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "-";
}
import java.util.List;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
}
/** Implementation of method from Ptg */
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "+";
}
import java.util.List;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
}
/** Implementation of method from Ptg */
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "+";
}
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
}
/** Implementation of method from Ptg */
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return ",";
}
==================================================================== */
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.record.RecordInputStream;
/**
return size;
}
- public String toFormulaString(HSSFWorkbook book)
+ public String toFormulaString(Workbook book)
{
return "UNKNOWN";
}
private void setSheetName(String sheetName){
int sheetNumber = book.getSheetIndex(sheetName);
- short externSheetNumber = book.getExternalSheetIndex(sheetNumber);
+ short externSheetNumber = (short)
+ book.getExternalSheetIndex(sheetNumber);
name.setExternSheetNumber(externSheetNumber);
// name.setIndexToSheet(externSheetNumber);
* Used by some of the more obscure formula and
* named range things.
*/
- public short getExternalSheetIndex(int internalSheetIndex) {
+ public int getExternalSheetIndex(int internalSheetIndex) {
return workbook.checkExternSheet(internalSheetIndex);
}
package org.apache.poi.hssf.util;
-import java.util.HashMap;
-import java.util.Map;
-
/**
* Holds a collection of Sheet names and their associated
* reference numbers.
* @author Andrew C. Oliver (acoliver at apache dot org)
*
*/
-public class SheetReferences
+public class SheetReferences extends org.apache.poi.ss.util.SheetReferences
{
- Map map;
- public SheetReferences()
- {
- map = new HashMap(5);
- }
-
- public void addSheetReference(String sheetName, int number) {
- map.put(new Integer(number), sheetName);
- }
-
- public String getSheetName(int number) {
- return (String)map.get(new Integer(number));
- }
-
}
import org.apache.poi.hssf.record.formula.eval.StringEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* @author Amol S. Deshmukh < amolweb at ya hoo dot com >
private static ValueEval evaluateCell(Workbook workbook, Sheet sheet,
int srcRowNum, short srcColNum, String cellFormulaText) {
- FormulaParser parser;
- if(workbook instanceof HSSFWorkbook) {
- parser = HSSFFormulaEvaluator.getUnderlyingParser(
- (HSSFWorkbook)workbook,
- cellFormulaText
- );
- } else {
- // Hope for the best...
- parser = new FormulaParser(cellFormulaText, null);
- }
+ FormulaParser parser =
+ new FormulaParser(cellFormulaText, workbook);
parser.parse();
Ptg[] ptgs = parser.getRPNPtg();
--- /dev/null
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+
+package org.apache.poi.ss.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Holds a collection of Sheet names and their associated
+ * reference numbers.
+ *
+ * @author Andrew C. Oliver (acoliver at apache dot org)
+ *
+ */
+public class SheetReferences
+{
+ Map map;
+ public SheetReferences()
+ {
+ map = new HashMap(5);
+ }
+
+ public void addSheetReference(String sheetName, int number) {
+ map.put(new Integer(number), sheetName);
+ }
+
+ public String getSheetName(int number) {
+ return (String)map.get(new Integer(number));
+ }
+
+}
import java.io.OutputStream;
import java.util.List;
+import org.apache.poi.ss.util.SheetReferences;
+
public interface Workbook {
/**
*/
int getSheetIndex(Sheet sheet);
+ /**
+ * Returns the external sheet index of the sheet
+ * with the given internal index, creating one
+ * if needed.
+ * Used by some of the more obscure formula and
+ * named range things.
+ */
+ int getExternalSheetIndex(int internalSheetIndex);
+
/**
* create an HSSFSheet for this HSSFWorkbook, adds it to the sheets and returns
* the high level representation. Use this to create new sheets.
void removeSheetAt(int index);
+ SheetReferences getSheetReferences();
+
/**
* determine whether the Excel GUI will backup the workbook when saving.
*
*/
String getNameName(int index);
+ /**
+ * TODO - make this less cryptic / move elsewhere
+ * @param refIndex Index to REF entry in EXTERNSHEET record in the Link Table
+ * @param definedNameIndex zero-based to DEFINEDNAME or EXTERNALNAME record
+ * @return the string representation of the defined or external name
+ */
+ String resolveNameXText(int refIndex, int definedNameIndex);
+
/**
* Sets the printarea for the sheet provided
* <p>
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.StylesSource;
import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.util.SheetReferences;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
import org.apache.poi.xssf.model.CommentsTable;
}
return -1;
}
+
+ /**
+ * TODO - figure out what the hell this methods does in
+ * HSSF...
+ */
+ public String resolveNameXText(int refIndex, int definedNameIndex) {
+ // TODO Replace with something proper
+ return null;
+ }
- public short getNumCellStyles() {
+ public short getNumCellStyles() {
// TODO Auto-generated method stub
return 0;
}
public int getSheetIndex(Sheet sheet) {
return this.sheets.indexOf(sheet);
}
+
+ /**
+ * Returns the external sheet index of the sheet
+ * with the given internal index, creating one
+ * if needed.
+ * Used by some of the more obscure formula and
+ * named range things.
+ * Fairly easy on XSSF (we think...) since the
+ * internal and external indicies are the same
+ */
+ public int getExternalSheetIndex(int internalSheetIndex) {
+ return internalSheetIndex;
+ }
public String getSheetName(int sheet) {
return this.workbook.getSheets().getSheetArray(sheet).getName();
}
+
+ public SheetReferences getSheetReferences() {
+ SheetReferences sr = new SheetReferences();
+ for(int i=0; i<getNumberOfSheets(); i++) {
+ sr.addSheetReference(getSheetName(i), i);
+ }
+ return sr;
+ }
- public void insertChartRecord() {
+ public void insertChartRecord() {
// TODO Auto-generated method stub
}