import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.IOException;
+import java.util.Date;
import org.apache.poi.ss.formula.ConditionalFormattingEvaluator;
import org.apache.poi.ss.formula.WorkbookEvaluatorProvider;
assertEquals("6.75", formatter.formatCellValue(d1));
}
}
+
+ @Test
+ public void testFormatCellValue() throws IOException {
+ DataFormatter df = new DataFormatter();
+
+ assertEquals("", df.formatCellValue(null));
+
+ try (Workbook wb = new XSSFWorkbook()) {
+ Cell cell = wb.createSheet("test").createRow(0).createCell(0);
+ assertEquals("", df.formatCellValue(cell));
+
+ cell.setCellValue(123);
+ assertEquals("123", df.formatCellValue(cell));
+
+ cell.setCellValue(new Date(234092383));
+ assertEquals("25571.75107", df.formatCellValue(cell));
+
+ cell.setCellValue("abcdefgh");
+ assertEquals("abcdefgh", df.formatCellValue(cell));
+
+ cell.setCellValue(true);
+ assertEquals("TRUE", df.formatCellValue(cell));
+
+ CellStyle cellStyle = wb.createCellStyle();
+ cellStyle.setDataFormat((short)14);
+ cell.setCellStyle(cellStyle);
+ cell.setCellValue(new Date(234092383));
+ assertEquals("1/3/70", df.formatCellValue(cell));
+
+ cellStyle.setDataFormat((short)9999);
+ assertEquals("25571.751069247686", df.formatCellValue(cell));
+ }
+ }
}
sdf.setTimeZone(LocaleUtil.getUserTimeZone());
dateFormat = sdf;
} else {
- dateFormat = defaultNumFormat;
+ dateFormat = defaultDateformat;
}
}
synchronized (dateFormat) {
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5889658057523200.xls", IndexOutOfBoundsException.class);
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5175219985448960.xls", IndexOutOfBoundsException.class);
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-6137883240824832.xls", IndexOutOfBoundsException.class);
+ excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-6483562584932352.xls", IndexOutOfBoundsException.class);
return excludes;
}
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5889658057523200.xls", IndexOutOfBoundsException.class);
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5175219985448960.xls", RecordFormatException.class);
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-6137883240824832.xls", RecordFormatException.class);
+ excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-6483562584932352.xls", RecordFormatException.class);
return excludes;
}
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
+import javax.swing.text.DateFormatter;
+
import org.apache.poi.POITestCase;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
return true;
}
+ @Test
+ public void testFormatCellValue() throws IOException {
+ DataFormatter df = new DataFormatter();
+
+ assertEquals("", df.formatCellValue(null));
+
+ try (Workbook wb = new HSSFWorkbook()) {
+ Cell cell = wb.createSheet("test").createRow(0).createCell(0);
+ assertEquals("", df.formatCellValue(cell));
+
+ cell.setCellValue(123);
+ assertEquals("123", df.formatCellValue(cell));
+
+ cell.setCellValue(new Date(234092383));
+ assertEquals("25571.75107", df.formatCellValue(cell));
+
+ cell.setCellValue("abcdefgh");
+ assertEquals("abcdefgh", df.formatCellValue(cell));
+
+ cell.setCellValue(true);
+ assertEquals("TRUE", df.formatCellValue(cell));
+
+ CellStyle cellStyle = wb.createCellStyle();
+ cellStyle.setDataFormat((short)14);
+ cell.setCellStyle(cellStyle);
+ cell.setCellValue(new Date(234092383));
+ assertEquals("1/3/70", df.formatCellValue(cell));
+
+ cellStyle.setDataFormat((short)9999);
+ assertEquals("25571.751069247686", df.formatCellValue(cell));
+ }
+ }
}