Add get/setForceFormulaRecalculation for XSSF, and promote the methods to the common usermodel Sheet, using sheetCalcPr fullCalcOnLoad="true"
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1095667 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
98860bdcec
commit
0677f40542
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
<changes>
|
<changes>
|
||||||
<release version="3.8-beta3" date="2011-??-??">
|
<release version="3.8-beta3" date="2011-??-??">
|
||||||
|
<action dev="poi-developers" type="add">Add get/setForceFormulaRecalculation for XSSF, and promote the methods to the common usermodel Sheet</action>
|
||||||
<action dev="poi-developers" type="fix">Tweak the logic for sizing the HSSFCells array on a HSSFRow to reduce memory over allocation in many use cases</action>
|
<action dev="poi-developers" type="fix">Tweak the logic for sizing the HSSFCells array on a HSSFRow to reduce memory over allocation in many use cases</action>
|
||||||
<action dev="poi-developers" type="add">49765 - Support for adding a picture to a XSSFRun</action>
|
<action dev="poi-developers" type="add">49765 - Support for adding a picture to a XSSFRun</action>
|
||||||
<action dev="poi-developers" type="fix">Rename/Move xssf.model.Table to xssf.usermodel.XSSFTable as it now has usermodel-like features</action>
|
<action dev="poi-developers" type="fix">Rename/Move xssf.model.Table to xssf.usermodel.XSSFTable as it now has usermodel-like features</action>
|
||||||
|
@ -258,6 +258,21 @@ public interface Sheet extends Iterable<Row> {
|
|||||||
*/
|
*/
|
||||||
Iterator<Row> rowIterator();
|
Iterator<Row> rowIterator();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Control if Excel should be asked to recalculate all formulas when the
|
||||||
|
* workbook is opened.
|
||||||
|
* Calculating the formula values with {@link FormulaEvaluator} is the
|
||||||
|
* recommended solution, but this may be used for certain cases where
|
||||||
|
* evaluation in POI is not possible.
|
||||||
|
*/
|
||||||
|
void setForceFormulaRecalculation(boolean value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether Excel will be asked to recalculate all formulas when the
|
||||||
|
* workbook is opened.
|
||||||
|
*/
|
||||||
|
boolean getForceFormulaRecalculation();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag indicating whether the sheet displays Automatic Page Breaks.
|
* Flag indicating whether the sheet displays Automatic Page Breaks.
|
||||||
*
|
*
|
||||||
|
@ -46,6 +46,7 @@ import org.apache.poi.ss.usermodel.CellStyle;
|
|||||||
import org.apache.poi.ss.usermodel.DataValidation;
|
import org.apache.poi.ss.usermodel.DataValidation;
|
||||||
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
||||||
import org.apache.poi.ss.usermodel.Footer;
|
import org.apache.poi.ss.usermodel.Footer;
|
||||||
|
import org.apache.poi.ss.usermodel.FormulaEvaluator;
|
||||||
import org.apache.poi.ss.usermodel.Header;
|
import org.apache.poi.ss.usermodel.Header;
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
@ -89,6 +90,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPrintOptions;
|
|||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSelection;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSelection;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet;
|
||||||
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetCalcPr;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetData;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetData;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetFormatPr;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetFormatPr;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetPr;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetPr;
|
||||||
@ -1454,6 +1456,41 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Control if Excel should be asked to recalculate all formulas when the
|
||||||
|
* workbook is opened, via the "sheetCalcPr fullCalcOnLoad" option.
|
||||||
|
* Calculating the formula values with {@link FormulaEvaluator} is the
|
||||||
|
* recommended solution, but this may be used for certain cases where
|
||||||
|
* evaluation in POI is not possible.
|
||||||
|
*/
|
||||||
|
public void setForceFormulaRecalculation(boolean value) {
|
||||||
|
if(worksheet.isSetSheetCalcPr()) {
|
||||||
|
// Change the current setting
|
||||||
|
CTSheetCalcPr calc = worksheet.getSheetCalcPr();
|
||||||
|
calc.setFullCalcOnLoad(value);
|
||||||
|
}
|
||||||
|
else if(value) {
|
||||||
|
// Add the Calc block and set it
|
||||||
|
CTSheetCalcPr calc = worksheet.addNewSheetCalcPr();
|
||||||
|
calc.setFullCalcOnLoad(value);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Not set, requested not, nothing to do
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether Excel will be asked to recalculate all formulas when the
|
||||||
|
* workbook is opened.
|
||||||
|
*/
|
||||||
|
public boolean getForceFormulaRecalculation() {
|
||||||
|
if(worksheet.isSetSheetCalcPr()) {
|
||||||
|
CTSheetCalcPr calc = worksheet.getSheetCalcPr();
|
||||||
|
return calc.getFullCalcOnLoad();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return an iterator of the PHYSICAL rows. Meaning the 3rd element may not
|
* @return an iterator of the PHYSICAL rows. Meaning the 3rd element may not
|
||||||
* be the third row if say for instance the second row is undefined.
|
* be the third row if say for instance the second row is undefined.
|
||||||
|
Loading…
Reference in New Issue
Block a user