bug 58879: add SpreadsheetVersion to Workbook interface

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1725039 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Javen O'Neal 2016-01-16 22:01:33 +00:00
parent 7ddcde8a09
commit 276e95e43f
8 changed files with 81 additions and 3 deletions

View File

@ -76,6 +76,7 @@ import org.apache.poi.poifs.filesystem.FilteringDirectoryNode;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.Ole10Native;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.FormulaShifter;
import org.apache.poi.ss.formula.FormulaType;
import org.apache.poi.ss.formula.SheetNameFormatter;
@ -2152,4 +2153,15 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
public InternalWorkbook getInternalWorkbook() {
return workbook;
}
/**
* Returns the spreadsheet version (EXCLE97) of this workbook
*
* @return EXCEL97 SpreadsheetVersion enum
* @since 3.14 beta 2
*/
@Override
public SpreadsheetVersion getSpreadsheetVersion() {
return SpreadsheetVersion.EXCEL97;
}
}

View File

@ -23,6 +23,7 @@ import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.udf.UDFFinder;
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
import org.apache.poi.ss.util.CellRangeAddress;
@ -623,5 +624,13 @@ public interface Workbook extends Closeable, Iterable<Sheet> {
* @since 3.8
*/
boolean getForceFormulaRecalculation();
/**
* Returns the spreadsheet version of this workbook
*
* @return SpreadsheetVersion enum
* @since 3.14 beta 2
*/
public SpreadsheetVersion getSpreadsheetVersion();
}

View File

@ -35,6 +35,7 @@ import java.util.zip.ZipOutputStream;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.opc.internal.ZipHelper;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.udf.UDFFinder;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
@ -1325,5 +1326,16 @@ public class SXSSFWorkbook implements Workbook {
return _wb.getForceFormulaRecalculation();
}
/**
* Returns the spreadsheet version (EXCLE2007) of this workbook
*
* @return EXCEL2007 SpreadsheetVersion enum
* @since 3.14 beta 2
*/
@Override
public SpreadsheetVersion getSpreadsheetVersion() {
return SpreadsheetVersion.EXCEL2007;
}
//end of interface implementation
}

View File

@ -54,6 +54,7 @@ import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
import org.apache.poi.openxml4j.opc.PackagingURIHelper;
import org.apache.poi.openxml4j.opc.TargetMode;
import org.apache.poi.poifs.crypt.HashAlgorithm;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.SheetNameFormatter;
import org.apache.poi.ss.formula.udf.IndexedUDFFinder;
import org.apache.poi.ss.formula.udf.UDFFinder;
@ -2255,4 +2256,15 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook {
setVBAProject(vbaProjectStream);
}
}
/**
* Returns the spreadsheet version (EXCLE2007) of this workbook
*
* @return EXCEL2007 SpreadsheetVersion enum
* @since 3.14 beta 2
*/
@Override
public SpreadsheetVersion getSpreadsheetVersion() {
return SpreadsheetVersion.EXCEL2007;
}
}

View File

@ -30,6 +30,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.POITestCase;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.BaseTestWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
@ -47,7 +48,7 @@ import org.junit.Ignore;
import org.junit.Test;
public final class TestSXSSFWorkbook extends BaseTestWorkbook {
public static final SXSSFITestDataProvider _testDataProvider = SXSSFITestDataProvider.instance;
private static final SXSSFITestDataProvider _testDataProvider = SXSSFITestDataProvider.instance;
public TestSXSSFWorkbook() {
super(_testDataProvider);
@ -435,4 +436,10 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
streamingWorkBook.close();
workBook.close();
}
@Test
@Override
public void getSpreadsheetVersion() throws IOException {
verifySpreadsheetVersion(SpreadsheetVersion.EXCEL2007);
}
}

View File

@ -77,9 +77,10 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookPr;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCalcMode;
public final class TestXSSFWorkbook extends BaseTestWorkbook {
private static final XSSFITestDataProvider _testDataProvider = XSSFITestDataProvider.instance;
public TestXSSFWorkbook() {
super(XSSFITestDataProvider.instance);
super(_testDataProvider);
}
/**
@ -1078,4 +1079,10 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
assertTrue(file.delete());
}
}
@Test
@Override
public void getSpreadsheetVersion() throws IOException {
verifySpreadsheetVersion(SpreadsheetVersion.EXCEL2007);
}
}

View File

@ -53,6 +53,7 @@ import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DirectoryNode;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.ptg.Area3DPtg;
import org.apache.poi.ss.usermodel.BaseTestWorkbook;
import org.apache.poi.ss.usermodel.Name;
@ -70,8 +71,10 @@ import junit.framework.AssertionFailedError;
* Tests for {@link HSSFWorkbook}
*/
public final class TestHSSFWorkbook extends BaseTestWorkbook {
private static final HSSFITestDataProvider _testDataProvider = HSSFITestDataProvider.instance;
public TestHSSFWorkbook() {
super(HSSFITestDataProvider.instance);
super(_testDataProvider);
}
/**
@ -1253,4 +1256,10 @@ public final class TestHSSFWorkbook extends BaseTestWorkbook {
fileOut.close();
}
@Test
@Override
public void getSpreadsheetVersion() throws IOException {
verifySpreadsheetVersion(SpreadsheetVersion.EXCEL97);
}
}

View File

@ -31,6 +31,7 @@ import java.util.ConcurrentModificationException;
import java.util.Iterator;
import org.apache.poi.ss.ITestDataProvider;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.util.CellRangeAddress;
import org.junit.Test;
@ -822,4 +823,13 @@ public abstract class BaseTestWorkbook {
b.close();
}
@Test
public abstract void getSpreadsheetVersion() throws IOException;
protected void verifySpreadsheetVersion(SpreadsheetVersion expected) throws IOException {
final Workbook wb = _testDataProvider.createWorkbook();
assertEquals(expected, wb.getSpreadsheetVersion());
wb.close();
}
}