You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2016/07/17 21:18:27 UTC

svn commit: r1753125 - in /poi/trunk: src/java/org/apache/poi/ss/formula/atp/ArgumentsEvaluator.java src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java test-data/spreadsheet/59106.xlsx

Author: centic
Date: Sun Jul 17 21:18:27 2016
New Revision: 1753125

URL: http://svn.apache.org/viewvc?rev=1753125&view=rev
Log:
59106: WorkdayFunction does not read the area with holidays correctly to calculate work days

Added:
    poi/trunk/test-data/spreadsheet/59106.xlsx
Modified:
    poi/trunk/src/java/org/apache/poi/ss/formula/atp/ArgumentsEvaluator.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/atp/ArgumentsEvaluator.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/atp/ArgumentsEvaluator.java?rev=1753125&r1=1753124&r2=1753125&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/atp/ArgumentsEvaluator.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/atp/ArgumentsEvaluator.java Sun Jul 17 21:18:27 2016
@@ -86,7 +86,9 @@ final class ArgumentsEvaluator {
             AreaEvalBase area = (AreaEvalBase) arg;
             for (int i = area.getFirstRow(); i <= area.getLastRow(); i++) {
                 for (int j = area.getFirstColumn(); j <= area.getLastColumn(); j++) {
-                    valuesList.add(evaluateDateArg(area.getValue(i, j), i, j));
+                    // getValue() is replaced with getAbsoluteValue() because loop variables i, j are
+                    // absolute indexes values, but getValue() works with relative indexes values
+                    valuesList.add(evaluateDateArg(area.getAbsoluteValue(i, j), i, j));
                 }
             }
             double[] values = new double[valuesList.size()];

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java?rev=1753125&r1=1753124&r2=1753125&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java Sun Jul 17 21:18:27 2016
@@ -3078,4 +3078,17 @@ public final class TestXSSFBugs extends
         assertEquals(70, sheet.getLastRowNum());
         assertEquals(70, sheet.getRow(sheet.getLastRowNum()).getRowNum());
     }
+
+    @Test
+    public void testWorkdayFunction() throws IOException {
+        XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("59106.xlsx");
+        XSSFSheet sheet = workbook.getSheet("Test");
+        Row row = sheet.getRow(1);
+        Cell cell = row.getCell(0);
+        DataFormatter form = new DataFormatter();
+        FormulaEvaluator evaluator = cell.getSheet().getWorkbook().getCreationHelper().createFormulaEvaluator();
+        String result = form.formatCellValue(cell, evaluator);
+
+        assertEquals("09 Mar 2016", result);
+    }
 }

Added: poi/trunk/test-data/spreadsheet/59106.xlsx
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/59106.xlsx?rev=1753125&view=auto
==============================================================================
Binary files poi/trunk/test-data/spreadsheet/59106.xlsx (added) and poi/trunk/test-data/spreadsheet/59106.xlsx Sun Jul 17 21:18:27 2016 differ



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org