import org.apache.poi.hssf.record.TabIdRecord;
import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate;
import org.apache.poi.hssf.record.common.UnicodeString;
+import org.apache.poi.hssf.record.formula.Area3DPtg;
import org.apache.poi.hssf.record.formula.DeletedArea3DPtg;
import org.apache.poi.hssf.record.formula.Ptg;
import org.apache.poi.ss.usermodel.*;
/**
* Newly created sheets need to get a
* proper TabID, otherwise print setup
- * gets confused on them.
+ * gets confused on them.
+ * Also ensure that print setup refs are
+ * by reference not value
*/
public void test46664() throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();
// Ensure the print setup
assertEquals("new_sheet!$A$1:$C$1", wb.getPrintArea(0));
+ assertEquals("new_sheet!$A$1:$C$1", wb.getName("Print_Area").getRefersToFormula());
+
+ // Needs reference not value
+ NameRecord nr = wb.getWorkbook().getNameRecord(
+ wb.getNameIndex("Print_Area")
+ );
+ assertEquals("Print_Area", nr.getNameText());
+ assertEquals(1, nr.getNameDefinition().length);
+ assertEquals(
+ "new_sheet!$A$1:$C$1",
+ ((Area3DPtg)nr.getNameDefinition()[0]).toFormulaString(HSSFEvaluationWorkbook.create(wb))
+ );
+ // TODO - fix me to be Reference not Value!
+if(1==2) {
+ assertEquals('R', nr.getNameDefinition()[0].getRVAType());
+}
}
/**