summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPJ Fanning <fanningpj@apache.org>2019-03-30 21:57:50 +0000
committerPJ Fanning <fanningpj@apache.org>2019-03-30 21:57:50 +0000
commit5d580f48e61e72e8cb441721af04d8a30f737a65 (patch)
tree693d53d58bdf20bb62d9b57f8286276676e90a93 /src
parent67aad697571fe945e1100cd0a1ba148e9479bee4 (diff)
downloadpoi-5d580f48e61e72e8cb441721af04d8a30f737a65.tar.gz
poi-5d580f48e61e72e8cb441721af04d8a30f737a65.zip
fix build issue
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1856649 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/java/org/apache/poi/ss/usermodel/DataFormatter.java8
-rw-r--r--src/java/org/apache/poi/ss/usermodel/Date1904Support.java35
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java11
3 files changed, 43 insertions, 11 deletions
diff --git a/src/java/org/apache/poi/ss/usermodel/DataFormatter.java b/src/java/org/apache/poi/ss/usermodel/DataFormatter.java
index e01b336d81..15bbef0fbe 100644
--- a/src/java/org/apache/poi/ss/usermodel/DataFormatter.java
+++ b/src/java/org/apache/poi/ss/usermodel/DataFormatter.java
@@ -49,7 +49,6 @@ import org.apache.poi.ss.util.NumberToTextConverter;
import org.apache.poi.util.LocaleUtil;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
@@ -311,10 +310,11 @@ public class DataFormatter implements Observer {
}
private boolean isDate1904(Cell cell) {
- if (cell == null || ! (cell.getSheet().getWorkbook() instanceof XSSFWorkbook) ) {
- return false;
+ if ( cell != null && cell.getSheet().getWorkbook() instanceof Date1904Support) {
+ return ((Date1904Support)cell.getSheet().getWorkbook()).isDate1904();
+
}
- return ((XSSFWorkbook) cell.getSheet().getWorkbook()).isDate1904();
+ return false;
}
private Format getFormat(double cellValue, int formatIndex, String formatStrIn, boolean use1904Windowing) {
diff --git a/src/java/org/apache/poi/ss/usermodel/Date1904Support.java b/src/java/org/apache/poi/ss/usermodel/Date1904Support.java
new file mode 100644
index 0000000000..db9cdd3b69
--- /dev/null
+++ b/src/java/org/apache/poi/ss/usermodel/Date1904Support.java
@@ -0,0 +1,35 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+
+package org.apache.poi.ss.usermodel;
+
+import org.apache.poi.util.Internal;
+
+@Internal
+public interface Date1904Support {
+ /**
+ * Gets a boolean value that indicates whether the date systems used in the workbook starts in 1904.
+ * <p>
+ * The default value is false, meaning that the workbook uses the 1900 date system,
+ * where 1/1/1900 is the first day in the system.
+ *
+ * 1904 based dates are only supported in XSSF workbooks.
+ * </p>
+ * @return true if the date systems used in the workbook starts in 1904
+ */
+ boolean isDate1904();
+}
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
index 160689247e..14ca6c97ea 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
@@ -67,12 +67,8 @@ import org.apache.poi.ss.formula.SheetNameFormatter;
import org.apache.poi.ss.formula.udf.AggregatingUDFFinder;
import org.apache.poi.ss.formula.udf.IndexedUDFFinder;
import org.apache.poi.ss.formula.udf.UDFFinder;
-import org.apache.poi.ss.usermodel.Name;
-import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.SheetVisibility;
-import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.ss.util.WorkbookUtil;
import org.apache.poi.util.Beta;
@@ -119,7 +115,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.WorkbookDocument;
* will construct whether they are reading or writing a workbook. It is also the
* top level object for creating new sheets/etc.
*/
-public class XSSFWorkbook extends POIXMLDocument implements Workbook {
+public class XSSFWorkbook extends POIXMLDocument implements Workbook, Date1904Support {
private static final Pattern COMMA_PATTERN = Pattern.compile(",");
/**
@@ -1854,7 +1850,8 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook {
* @return true if the date systems used in the workbook starts in 1904
*/
@Internal
- public boolean isDate1904(){
+ @Override
+ public boolean isDate1904() {
CTWorkbookPr workbookPr = workbook.getWorkbookPr();
return workbookPr != null && workbookPr.getDate1904();
}