如何从流中打开 ClosedXML 工作簿?

Jes*_*ess 4 c# closedxml

我有一个 ASP.NET MVC 应用程序,用户可以在其中上传要处理的 xlsx 文件。

这会HttpPostedFileBase在上传中创建一个对象,该对象具有方便的流方法HttpPostedFileBase.InputStream

我想使用 ClosedXML 处理文件,但我不知道如何XLWorkbook从流构造对象。 其他SO答案使用像这样的普通文件:

 string fileName = "C:\\Folder1\\Prev.xlsx";
 var workbook = new XLWorkbook(fileName);
Run Code Online (Sandbox Code Playgroud)

这个问题探讨了如何SaveAs作为流,但我想从流创建。

XLWorkbook那么如何从流中打开一个呢?

Jes*_*ess 9

我在ClosedXML Wiki上浏览,但没有找到任何东西,所以我去github 上查看了源代码

我找到了这个方法:

    /// <summary>
    ///   Opens an existing workbook from a stream.
    /// </summary>
    /// <param name = "stream">The stream to open.</param>
    public XLWorkbook(Stream stream):this(stream, XLEventTracking.Enabled)
    {

    }
Run Code Online (Sandbox Code Playgroud)

然后你应该能够像这样打开我的 HttpPostedFileBase :

var workbook = new XLWorkbook(httpPostedFileBase.InputStream);
Run Code Online (Sandbox Code Playgroud)