Author: centic
Date: Sat Jan 11 09:23:39 2025
New Revision: 1923053

URL: http://svn.apache.org/viewvc?rev=1923053&view=rev
Log:
Bug 58571: Add test which shows a workaround

Modified:
    
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulaBugs.java

Modified: 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulaBugs.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulaBugs.java?rev=1923053&r1=1923052&r2=1923053&view=diff
==============================================================================
--- 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulaBugs.java 
(original)
+++ 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulaBugs.java 
Sat Jan 11 09:23:39 2025
@@ -243,4 +243,30 @@ final class TestFormulaBugs {
         CellValue value = evaluateFormulaInCell(wb, cell, formula);
         assertEquals(expectedValue, value.getStringValue());
     }
+
+    @Test
+    public void testFormula_58571() throws IOException {
+        try (Workbook wb = new HSSFWorkbook()) {
+            FormulaEvaluator eval = 
wb.getCreationHelper().createFormulaEvaluator();
+
+            Sheet sheet = wb.createSheet("test");
+            Row row = sheet.createRow(0);
+            Cell cell = row.createCell(0);
+            // it seems the two double-quotes are replaced with one 
double-quote when parsing the function
+            // this does not work: cell.setCellFormula("TEXT(B1, \"h\"\"h\"\" 
m\"\"m\"\"\")");
+            cell.setCellFormula("TEXT(B1, \"h\"\"\"\"h\"\"\"\" 
m\"\"\"\"m\"\"\"\"\")");
+
+            Cell cellValue = row.createCell(1);
+            cellValue.setCellValue(0.0104166666666666);
+
+            CellValue value = eval.evaluate(cell);
+            assertEquals(CellType.STRING, value.getCellType());
+            assertEquals("0h 15m", value.getStringValue());
+
+            cellValue.setCellValue(1.123);
+            value = eval.evaluate(cell);
+            assertEquals(CellType.STRING, value.getCellType());
+            assertEquals("0h 15m", value.getStringValue());
+        }
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to