2017-12-17 1 views
1

ASP.NET MVC Core (.netcore2) 응용 프로그램에서 다음 방법을 사용하여 Excel 파일을 읽습니다.Epplus로 Excel 파일을 읽는 동안 STG_E_WRITEFAULT

COMException :

[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이 예외가 발생 된 디스크 에러가 기록 동작 중에 발생. (HRESULT에서 예외 : 0x8003001D (STG_E_WRITEFAULT)) 내가 Excel 파일을 가져 오기 위해 과거에이 같은 방법을 사용했습니다, 그리고 내가 잘못 무슨 일이 일어나고 있는지 모르는

.

나는 확인했습니다 참조

  • 버전 프로젝트에
  • Excel 파일 유효성
(나는 유효한 XLSX 파일이 아닌 오래된 XLS 또는 다른 형식의 확실 해요)

답변

1

Epplus는 문자 인코딩을 사용하여 .NetStandard을 타겟팅 할 때 현재 문제가 있습니다. 이 문제를 해결하려면이 참조를 프로젝트에 추가하십시오.

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

그런 다음 응용 프로그램의 시작에 한번 전화 -

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 

More detail here 왜 이런 일이에.

관련 문제