mvc에서 ajax를 통해 Excel 파일을 다운로드
]MVC에서 큰 형식을 처리 할 때 나머지 부분에 영향을 미치지 않고 양식의 특정 하위 집합에 대한 데이터가 포함 된 Excel 파일을 생성해야 할 수도 있습니다. Ajax는 서버에 부분 요청을 할 수 있도록하여 솔루션을 제공합니다.
Excel 파일을 직접 다운로드 할 수 없습니다
불행히도 Ajax를 통해 직접 다운로드하려는 파일을 반환 할 수 없습니다. 대신 AJAX를 사용하여 관련 데이터를 서버에 게시하는 대체 방법을 탐색하십시오.
서버 측 파일 생성 및 응답
]]]]서버에서 서버 측 코드를 사용하여 Excel 파일을 생성 할 수 있습니다. 이를 위해 Epplus 또는 NPOI와 같은 라이브러리를 사용하는 것을 고려하십시오. 그런 다음 생성 된 파일의 경로 또는 파일 이름을 반환 값으로 AJAX 호출로 전달할 수 있습니다.
다운로드로 리디렉션
] 클라이언트의 javaScript에서 window.location = '/reports/download? file ='returnValue
를 사용하여 JavaScript 창 위치를 파일의 URL로 설정하여 브라우저가 다운로드하도록하려면.
원활한 사용자 경험
]이 접근법은 파일 다운로드 작업이 소스 페이지를 남기지 않기 때문에 원활한 사용자 경험을 제공합니다.
ajax 호출 예
]다음은 이것을 달성하는 ajax 호출의 예입니다.
$.ajax({
type: 'POST',
url: '/Reports/ExportMyData',
data: '{ "dataprop1": "test", "dataprop2" : "test2" }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (returnValue) {
window.location = '/Reports/Download?file=' returnValue;
}
});
파일 다운로드를위한 컨트롤러 메소드
다운로드 작업을위한 해당 컨트롤러 방법은 다음과 같습니다.
[HttpGet]
public virtual ActionResult Download(string file)
{
string fullPath = Path.Combine(Server.MapPath("~/MyFiles"), file);
return File(fullPath, "application/vnd.ms-excel", file);
}
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3