我有一个 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那么如何从流中打开一个呢?
我在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)