Ensure the indenting is consistent within the file, and then make some minor updates to the JavaDocs (language, clarity etc)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1496952 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1ae9e8eba6
commit
4c4d512d4a
@ -33,62 +33,69 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
/**
|
||||
* Factory for creating the appropriate kind of Workbook
|
||||
* (be it HSSFWorkbook or XSSFWorkbook), from the given input
|
||||
* (be it {@link HSSFWorkbook} or {@link XSSFWorkbook}),
|
||||
* by auto-detecting from the supplied input.
|
||||
*/
|
||||
public class WorkbookFactory {
|
||||
/**
|
||||
* Creates an HSSFWorkbook from the given POIFSFileSystem
|
||||
*/
|
||||
public static Workbook create(POIFSFileSystem fs) throws IOException {
|
||||
return new HSSFWorkbook(fs);
|
||||
}
|
||||
/**
|
||||
* Creates an HSSFWorkbook from the given NPOIFSFileSystem
|
||||
*/
|
||||
public static Workbook create(NPOIFSFileSystem fs) throws IOException {
|
||||
return new HSSFWorkbook(fs.getRoot(), true);
|
||||
}
|
||||
/**
|
||||
* Creates an XSSFWorkbook from the given OOXML Package
|
||||
*/
|
||||
public static Workbook create(OPCPackage pkg) throws IOException {
|
||||
return new XSSFWorkbook(pkg);
|
||||
}
|
||||
/**
|
||||
* Creates the appropriate HSSFWorkbook / XSSFWorkbook from
|
||||
* the given InputStream.
|
||||
* Your input stream MUST either support mark/reset, or
|
||||
* be wrapped as a {@link PushbackInputStream}!
|
||||
*/
|
||||
public static Workbook create(InputStream inp) throws IOException, InvalidFormatException {
|
||||
// If clearly doesn't do mark/reset, wrap up
|
||||
if(! inp.markSupported()) {
|
||||
inp = new PushbackInputStream(inp, 8);
|
||||
}
|
||||
|
||||
if(POIFSFileSystem.hasPOIFSHeader(inp)) {
|
||||
return new HSSFWorkbook(inp);
|
||||
}
|
||||
if(POIXMLDocument.hasOOXMLHeader(inp)) {
|
||||
return new XSSFWorkbook(OPCPackage.open(inp));
|
||||
}
|
||||
throw new IllegalArgumentException("Your InputStream was neither an OLE2 stream, nor an OOXML stream");
|
||||
}
|
||||
/**
|
||||
* Creates the appropriate HSSFWorkbook / XSSFWorkbook from
|
||||
* the given File, which must exist and be readable.
|
||||
*/
|
||||
public static Workbook create(File file) throws IOException, InvalidFormatException {
|
||||
if(! file.exists()) {
|
||||
throw new FileNotFoundException(file.toString());
|
||||
}
|
||||
|
||||
try {
|
||||
NPOIFSFileSystem fs = new NPOIFSFileSystem(file);
|
||||
return new HSSFWorkbook(fs.getRoot(), true);
|
||||
} catch(OfficeXmlFileException e) {
|
||||
OPCPackage pkg = OPCPackage.open(file);
|
||||
return new XSSFWorkbook(pkg);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Creates a HSSFWorkbook from the given POIFSFileSystem
|
||||
*/
|
||||
public static Workbook create(POIFSFileSystem fs) throws IOException {
|
||||
return new HSSFWorkbook(fs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a HSSFWorkbook from the given NPOIFSFileSystem
|
||||
*/
|
||||
public static Workbook create(NPOIFSFileSystem fs) throws IOException {
|
||||
return new HSSFWorkbook(fs.getRoot(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a XSSFWorkbook from the given OOXML Package
|
||||
*/
|
||||
public static Workbook create(OPCPackage pkg) throws IOException {
|
||||
return new XSSFWorkbook(pkg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the appropriate HSSFWorkbook / XSSFWorkbook from
|
||||
* the given InputStream.
|
||||
* <p>Your input stream MUST either support mark/reset, or
|
||||
* be wrapped as a {@link PushbackInputStream}! Note that
|
||||
* using an {@link InputStream} has a higher memory footprint
|
||||
* than using a {@link File}.</p>
|
||||
*/
|
||||
public static Workbook create(InputStream inp) throws IOException, InvalidFormatException {
|
||||
// If clearly doesn't do mark/reset, wrap up
|
||||
if (! inp.markSupported()) {
|
||||
inp = new PushbackInputStream(inp, 8);
|
||||
}
|
||||
|
||||
if (POIFSFileSystem.hasPOIFSHeader(inp)) {
|
||||
return new HSSFWorkbook(inp);
|
||||
}
|
||||
if (POIXMLDocument.hasOOXMLHeader(inp)) {
|
||||
return new XSSFWorkbook(OPCPackage.open(inp));
|
||||
}
|
||||
throw new IllegalArgumentException("Your InputStream was neither an OLE2 stream, nor an OOXML stream");
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the appropriate HSSFWorkbook / XSSFWorkbook from
|
||||
* the given File, which must exist and be readable.
|
||||
*/
|
||||
public static Workbook create(File file) throws IOException, InvalidFormatException {
|
||||
if (! file.exists()) {
|
||||
throw new FileNotFoundException(file.toString());
|
||||
}
|
||||
|
||||
try {
|
||||
NPOIFSFileSystem fs = new NPOIFSFileSystem(file);
|
||||
return new HSSFWorkbook(fs.getRoot(), true);
|
||||
} catch(OfficeXmlFileException e) {
|
||||
OPCPackage pkg = OPCPackage.open(file);
|
||||
return new XSSFWorkbook(pkg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user