added Workbook.getForceFormulaRecalculation as requested in Bug 51422
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1141585 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
793d119eed
commit
9930e7099f
@ -1792,4 +1792,16 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
|
|||||||
recalc.setEngineId(0);
|
recalc.setEngineId(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether Excel will be asked to recalculate all formulas when the workbook is opened.
|
||||||
|
*
|
||||||
|
* @since 3.8
|
||||||
|
*/
|
||||||
|
public boolean getForceFormulaRecalculation(){
|
||||||
|
InternalWorkbook iwb = getWorkbook();
|
||||||
|
RecalcIdRecord recalc = (RecalcIdRecord)iwb.findFirstRecordBySid(RecalcIdRecord.sid);
|
||||||
|
return recalc != null && recalc.getEngineId() != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -319,7 +319,7 @@ public interface Sheet extends Iterable<Row> {
|
|||||||
void setForceFormulaRecalculation(boolean value);
|
void setForceFormulaRecalculation(boolean value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether Excel will be asked to recalculate all formulas when the
|
* Whether Excel will be asked to recalculate all formulas in this sheet when the
|
||||||
* workbook is opened.
|
* workbook is opened.
|
||||||
*/
|
*/
|
||||||
boolean getForceFormulaRecalculation();
|
boolean getForceFormulaRecalculation();
|
||||||
|
@ -564,4 +564,11 @@ public interface Workbook {
|
|||||||
*/
|
*/
|
||||||
public void setForceFormulaRecalculation(boolean value);
|
public void setForceFormulaRecalculation(boolean value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether Excel will be asked to recalculate all formulas when the workbook is opened.
|
||||||
|
*
|
||||||
|
* @since 3.8
|
||||||
|
*/
|
||||||
|
boolean getForceFormulaRecalculation();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -835,5 +835,12 @@ public class SXSSFWorkbook implements Workbook
|
|||||||
_wb.setForceFormulaRecalculation(value);
|
_wb.setForceFormulaRecalculation(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether Excel will be asked to recalculate all formulas when the workbook is opened.
|
||||||
|
*/
|
||||||
|
public boolean getForceFormulaRecalculation(){
|
||||||
|
return _wb.getForceFormulaRecalculation();
|
||||||
|
}
|
||||||
|
|
||||||
//end of interface implementation
|
//end of interface implementation
|
||||||
}
|
}
|
||||||
|
@ -1596,4 +1596,16 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Iterable<X
|
|||||||
// in the workbook the next time the file is opened.
|
// in the workbook the next time the file is opened.
|
||||||
calcPr.setCalcId(0);
|
calcPr.setCalcId(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether Excel will be asked to recalculate all formulas when the workbook is opened.
|
||||||
|
*
|
||||||
|
* @since 3.8
|
||||||
|
*/
|
||||||
|
public boolean getForceFormulaRecalculation(){
|
||||||
|
CTWorkbook ctWorkbook = getCTWorkbook();
|
||||||
|
CTCalcPr calcPr = ctWorkbook.getCalcPr();
|
||||||
|
return calcPr != null && calcPr.getCalcId() != 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -410,6 +410,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
|||||||
|
|
||||||
public void testRecalcId() {
|
public void testRecalcId() {
|
||||||
XSSFWorkbook wb = new XSSFWorkbook();
|
XSSFWorkbook wb = new XSSFWorkbook();
|
||||||
|
assertFalse(wb.getForceFormulaRecalculation());
|
||||||
CTWorkbook ctWorkbook = wb.getCTWorkbook();
|
CTWorkbook ctWorkbook = wb.getCTWorkbook();
|
||||||
assertFalse(ctWorkbook.isSetCalcPr());
|
assertFalse(ctWorkbook.isSetCalcPr());
|
||||||
|
|
||||||
@ -420,8 +421,11 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
|||||||
assertEquals(0, (int) calcPr.getCalcId());
|
assertEquals(0, (int) calcPr.getCalcId());
|
||||||
|
|
||||||
calcPr.setCalcId(100);
|
calcPr.setCalcId(100);
|
||||||
|
assertTrue(wb.getForceFormulaRecalculation());
|
||||||
|
|
||||||
wb.setForceFormulaRecalculation(true); // resets the EngineId flag to zero
|
wb.setForceFormulaRecalculation(true); // resets the EngineId flag to zero
|
||||||
assertEquals(0, (int) calcPr.getCalcId());
|
assertEquals(0, (int) calcPr.getCalcId());
|
||||||
|
assertFalse(wb.getForceFormulaRecalculation());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -119,6 +119,8 @@ public final class TestWorkbook extends TestCase {
|
|||||||
|
|
||||||
public void testRecalcId(){
|
public void testRecalcId(){
|
||||||
HSSFWorkbook wb = new HSSFWorkbook();
|
HSSFWorkbook wb = new HSSFWorkbook();
|
||||||
|
assertFalse(wb.getForceFormulaRecalculation());
|
||||||
|
|
||||||
InternalWorkbook iwb = TestHSSFWorkbook.getInternalWorkbook(wb);
|
InternalWorkbook iwb = TestHSSFWorkbook.getInternalWorkbook(wb);
|
||||||
int countryPos = iwb.findFirstRecordLocBySid(CountryRecord.sid);
|
int countryPos = iwb.findFirstRecordLocBySid(CountryRecord.sid);
|
||||||
assertTrue(countryPos != -1);
|
assertTrue(countryPos != -1);
|
||||||
@ -133,8 +135,10 @@ public final class TestWorkbook extends TestCase {
|
|||||||
|
|
||||||
record.setEngineId(100);
|
record.setEngineId(100);
|
||||||
assertEquals(100, record.getEngineId());
|
assertEquals(100, record.getEngineId());
|
||||||
|
assertTrue(wb.getForceFormulaRecalculation());
|
||||||
|
|
||||||
wb.setForceFormulaRecalculation(true); // resets the EngineId flag to zero
|
wb.setForceFormulaRecalculation(true); // resets the EngineId flag to zero
|
||||||
assertEquals(0, record.getEngineId());
|
assertEquals(0, record.getEngineId());
|
||||||
|
assertFalse(wb.getForceFormulaRecalculation());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user