我有一个ASP.NET MVC应用程序,用户可以上传要处理的xlsx文件。
这会在上传中创建一个HttpPostedFileBase
对象,该对象具有便捷的流方法HttpPostedFileBase.InputStream
。
我想使用ClosedXML处理文件,但我不知道如何从流构建XLWorkbook
对象。 Other SO answers使用这样的普通文件:
string fileName = "C:\\Folder1\\Prev.xlsx";
var workbook = new XLWorkbook(fileName);
This question探讨如何将SaveAs
作为流,但我想从流中创建。
那么如何从流中打开XLWorkbook
答案 0 :(得分:2)
我在ClosedXML Wiki附近巡航,但没有找到任何东西,所以我去看了the source on 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)
{
}
然后你应该可以像这样打开我的HttpPostedFileBase:
var workbook = new XLWorkbook(httpPostedFileBase.InputStream);