gpt4 book ai didi

c# - 使用 Epplus 读取 Excel 文件时出现 STG_E_WRITEFAULT

转载 作者:行者123 更新时间:2023-11-30 17:31:27 25 4
gpt4 key购买 nike

在 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: A disk error occurred during a write operation. (Exception from HRESULT: 0x8003001D (STG_E_WRITEFAULT))

我以前也用过这样的方法导入Excel文件,不知道哪里出了问题。

我检查过:

  • 项目的引用版本
  • Excel 文件有效性(我肯定这是一个有效的 xlsx 文件,而不是旧的 xls 或其他格式)

最佳答案

Epplus 当前在使用文本编码定位 .NetStandard 时存在问题。要解决此问题,请将此引用添加到您的项目中。

<ItemGroup>
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0" />
</ItemGroup>

然后,在您的应用程序启动时调用一次 -

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

More detail here为什么会这样。

关于c# - 使用 Epplus 读取 Excel 文件时出现 STG_E_WRITEFAULT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47851858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com