在ASP.NET MVC Core(.netcore2)应用程序中,我使用以下方法读取Excel文件。
[HttpPost]
public IActionResult Import (IFormFile importFile)
{
using (var excel = new ExcelPackage(importFile.OpenReadStream())
{
var sheet = excel.Workbook.Worksheets.FirstOrDefault();
if (sheet == null) return BadRequest("No worksheet.");
var events = /* import logic */
return Json(events);
}
}
然而,epplus正在抛出这个例外:
COMException:写入操作期间发生磁盘错误。 (HRESULT异常:0x8003001D(STG_E_WRITEFAULT))
我过去曾使用过这样的方法导入Excel文件,但我不知道出了什么问题。
我已经查过:
答案 0 :(得分:1)
当使用文字编码定位.NetStandard
时,Epplus目前存在问题。要解决此问题,请将此引用添加到项目中。
<ItemGroup>
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0" />
</ItemGroup>
然后,在应用程序的启动时调用一次 -
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
More detail here了解为什么会发生这种情况。