diff --git a/ooxml/POIXMLDocument.cs b/ooxml/POIXMLDocument.cs index c8a069c64..222f25ce0 100644 --- a/ooxml/POIXMLDocument.cs +++ b/ooxml/POIXMLDocument.cs @@ -68,11 +68,11 @@ private void init(OPCPackage pkg) * in the event of a problem. * Works around shortcomings in java's this() constructor calls */ - public static OPCPackage OpenPackage(String path) + public static OPCPackage OpenPackage(String path, bool readOnly = false) { try { - return OPCPackage.Open(path); + return OPCPackage.Open(path, readOnly ? PackageAccess.READ: PackageAccess.READ_WRITE); } catch (InvalidFormatException e) { diff --git a/ooxml/SS/UserModel/WorkbookFactory.cs b/ooxml/SS/UserModel/WorkbookFactory.cs index d6e97ebf6..bd81185c6 100644 --- a/ooxml/SS/UserModel/WorkbookFactory.cs +++ b/ooxml/SS/UserModel/WorkbookFactory.cs @@ -121,7 +121,7 @@ public static IWorkbook Create(OPCPackage pkg) /// IWorkbook depending on the input HSSFWorkbook or XSSFWorkbook is returned. /// Your input stream MUST either support mark/reset, or /// be wrapped as a {@link PushbackInputStream}! - public static IWorkbook Create(Stream inputStream, bool bReadonly) + public static IWorkbook Create(Stream inputStream, bool readOnly) { if (inputStream.Length == 0) throw new EmptyFileException(); @@ -133,7 +133,7 @@ public static IWorkbook Create(Stream inputStream, bool bReadonly) inputStream.Position = 0; if (DocumentFactoryHelper.HasOOXMLHeader(inputStream)) { - return new XSSFWorkbook(OPCPackage.Open(inputStream, bReadonly)); + return new XSSFWorkbook(OPCPackage.Open(inputStream, readOnly)); } throw new InvalidFormatException("Your stream was neither an OLE2 stream, nor an OOXML stream."); } diff --git a/ooxml/Util/PackageHelper.cs b/ooxml/Util/PackageHelper.cs index 9c3acc602..df29d079a 100644 --- a/ooxml/Util/PackageHelper.cs +++ b/ooxml/Util/PackageHelper.cs @@ -30,12 +30,11 @@ namespace NPOI.Util */ public class PackageHelper { - - public static OPCPackage Open(Stream is1) + public static OPCPackage Open(Stream stream, bool readOnly = false) { try { - return OPCPackage.Open(is1); + return OPCPackage.Open(stream, readOnly); } catch (InvalidFormatException e) { diff --git a/ooxml/XSSF/UserModel/XSSFWorkbook.cs b/ooxml/XSSF/UserModel/XSSFWorkbook.cs index e7619bb20..2940dc72f 100644 --- a/ooxml/XSSF/UserModel/XSSFWorkbook.cs +++ b/ooxml/XSSF/UserModel/XSSFWorkbook.cs @@ -230,8 +230,8 @@ public XSSFWorkbook(OPCPackage pkg) * pkg.close(); // gracefully closes the underlying zip file * */ - public XSSFWorkbook(Stream is1) - : base(PackageHelper.Open(is1)) + public XSSFWorkbook(Stream fileStream, bool readOnly = false) + : base(PackageHelper.Open(fileStream, readOnly)) { BeforeDocumentRead(); @@ -259,8 +259,8 @@ public XSSFWorkbook(Stream is1) * * @param file the file to open */ - public XSSFWorkbook(FileInfo file) - : this(OPCPackage.Open(file)) + public XSSFWorkbook(FileInfo file, bool readOnly = false) + : this(OPCPackage.Open(file, readOnly? PackageAccess.READ: PackageAccess.READ_WRITE)) { } @@ -301,8 +301,8 @@ public XSSFWorkbook(FileInfo file) * * @param path the file name. */ - public XSSFWorkbook(String path) - : this(OpenPackage(path)) + public XSSFWorkbook(String path, bool readOnly = false) + : this(OpenPackage(path, readOnly)) { } diff --git a/openxml4Net/OPC/OPCPackage.cs b/openxml4Net/OPC/OPCPackage.cs index 327fb58e0..6443d72cc 100644 --- a/openxml4Net/OPC/OPCPackage.cs +++ b/openxml4Net/OPC/OPCPackage.cs @@ -294,9 +294,9 @@ public static OPCPackage Open(FileInfo file, PackageAccess access) * The InputStream to read the package from * @return A PackageBase object */ - public static OPCPackage Open(Stream in1) + public static OPCPackage Open(Stream stream) { - OPCPackage pack = new ZipPackage(in1, PackageAccess.READ_WRITE); + OPCPackage pack = new ZipPackage(stream, PackageAccess.READ_WRITE); try { if (pack.partList == null) @@ -317,9 +317,9 @@ public static OPCPackage Open(Stream in1) return pack; } - public static OPCPackage Open(Stream in1,bool bReadonly) + public static OPCPackage Open(Stream stream,bool readOnly) { - OPCPackage pack = new ZipPackage(in1, bReadonly ? PackageAccess.READ : PackageAccess.READ_WRITE); + OPCPackage pack = new ZipPackage(stream, readOnly ? PackageAccess.READ : PackageAccess.READ_WRITE); if (pack.partList == null) { pack.GetParts();