You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ye...@apache.org on 2012/10/04 15:26:44 UTC
svn commit: r1394059 - in /poi/trunk/src: documentation/content/xdocs/
ooxml/java/org/apache/poi/xssf/usermodel/
ooxml/testcases/org/apache/poi/xssf/usermodel/
Author: yegor
Date: Thu Oct 4 13:26:44 2012
New Revision: 1394059
URL: http://svn.apache.org/viewvc?rev=1394059&view=rev
Log:
Bugzilla 53950 - fixed setForceFormulaRecalculation to reset workbook-level manual flag<
Modified:
poi/trunk/src/documentation/content/xdocs/status.xml
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=1394059&r1=1394058&r2=1394059&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Thu Oct 4 13:26:44 2012
@@ -34,6 +34,7 @@
<changes>
<release version="3.9-beta1" date="2012-??-??">
+ <action dev="poi-developers" type="fix">53950 - fixed setForceFormulaRecalculation to reset workbook-level "manual" flag</action>
<action dev="poi-developers" type="fix">52211 - avoid unnessary re-coverting content types to US-ASCII, it can cause exceptions on ibm mainframes</action>
<action dev="poi-developers" type="fix">53568 - Set shapes anchors in XSSF when reading from existing drawings</action>
<action dev="poi-developers" type="add">HSSFOptimiser will now also tidy away un-used cell styles, in addition to duplicate styles</action>
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java?rev=1394059&r1=1394058&r2=1394059&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java Thu Oct 4 13:26:44 2012
@@ -1502,7 +1502,9 @@ public class XSSFSheet extends POIXMLDoc
* @see org.apache.poi.ss.usermodel.Workbook#setForceFormulaRecalculation(boolean)
*/
public void setForceFormulaRecalculation(boolean value) {
- if(worksheet.isSetSheetCalcPr()) {
+ CTCalcPr calcPr = getWorkbook().getCTWorkbook().getCalcPr();
+
+ if(worksheet.isSetSheetCalcPr()) {
// Change the current setting
CTSheetCalcPr calc = worksheet.getSheetCalcPr();
calc.setFullCalcOnLoad(value);
@@ -1512,9 +1514,10 @@ public class XSSFSheet extends POIXMLDoc
CTSheetCalcPr calc = worksheet.addNewSheetCalcPr();
calc.setFullCalcOnLoad(value);
}
- else {
- // Not set, requested not, nothing to do
- }
+ if(value && calcPr != null && calcPr.getCalcMode() == STCalcMode.MANUAL) {
+ calcPr.setCalcMode(STCalcMode.AUTO);
+ }
+
}
/**
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=1394059&r1=1394058&r2=1394059&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java Thu Oct 4 13:26:44 2012
@@ -1672,6 +1672,10 @@ public class XSSFWorkbook extends POIXML
// when set to 0, will tell Excel that it needs to recalculate all formulas
// in the workbook the next time the file is opened.
calcPr.setCalcId(0);
+
+ if(value && calcPr.getCalcMode() == STCalcMode.MANUAL) {
+ calcPr.setCalcMode(STCalcMode.AUTO);
+ }
}
/**
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java?rev=1394059&r1=1394058&r2=1394059&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java Thu Oct 4 13:26:44 2012
@@ -1074,11 +1074,18 @@ public final class TestXSSFSheet extends
// Set
sheet.setForceFormulaRecalculation(true);
assertEquals(true, sheet.getForceFormulaRecalculation());
-
- // Check
+
+ // calcMode="manual" is unset when forceFormulaRecalculation=true
+ CTCalcPr calcPr = workbook.getCTWorkbook().addNewCalcPr();
+ calcPr.setCalcMode(STCalcMode.MANUAL);
+ sheet.setForceFormulaRecalculation(true);
+ assertEquals(STCalcMode.AUTO, calcPr.getCalcMode());
+
+ // Check
sheet.setForceFormulaRecalculation(false);
assertEquals(false, sheet.getForceFormulaRecalculation());
-
+
+
// Save, re-load, and re-check
workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
sheet = workbook.getSheet("Sheet 1");
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java?rev=1394059&r1=1394058&r2=1394059&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java Thu Oct 4 13:26:44 2012
@@ -35,6 +35,7 @@ import org.apache.poi.xssf.model.StylesT
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCalcPr;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookPr;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCalcMode;
public final class TestXSSFWorkbook extends BaseTestWorkbook {
@@ -426,6 +427,12 @@ public final class TestXSSFWorkbook exte
wb.setForceFormulaRecalculation(true); // resets the EngineId flag to zero
assertEquals(0, (int) calcPr.getCalcId());
assertFalse(wb.getForceFormulaRecalculation());
+
+ // calcMode="manual" is unset when forceFormulaRecalculation=true
+ calcPr.setCalcMode(STCalcMode.MANUAL);
+ wb.setForceFormulaRecalculation(true);
+ assertEquals(STCalcMode.AUTO, calcPr.getCalcMode());
+
}
public void testChangeSheetNameWithSharedFormulas() {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org