使用Memorystream进行Excel反序列化抛出异常
Excel Type
- [x] XLSX
Upload Excel File
MiniExcel Version
<PackageReference Include="MiniExcel" Version="1.31.2" />
Description
public async Task<(bool flag, string message)> UpdateByExcel(IFormFile file)
{
try
{
var dtoes = file.OpenReadStream().Query<Dto>().ToList();
}
执行上述代码时,会抛出如下异常:
System.IO.InvalidDataException: Offset to Central Directory cannot be held in an Int64.
at System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory()
at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding)
at MiniExcelLibs.Zip.MiniExcelZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding)
at MiniExcelLibs.Zip.ExcelOpenXmlZip..ctor(Stream fileStream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding)
at MiniExcelLibs.OpenXml.ExcelOpenXmlSheetReader..ctor(Stream stream, IConfiguration configuration)
at MiniExcelLibs.ExcelReaderFactory.GetProvider(Stream stream, ExcelType excelType, IConfiguration configuration)
at MiniExcelLibs.MiniExcel.Query[T](Stream stream, String sheetName, ExcelType excelType, String startCell, IConfiguration configuration)+MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)