안녕하세요
제목 그대로 엑셀내려받기 질문 좀 드려볼까 합니다.
늦은 나이에 웹쪽 공부 하려니 참 막히는게 많네요
그럼 질문 들어가 보겟습니다.
[controller]
public FileResult Excel()
{
string fileName = "Sample.xlsx";
using (var wb = new XLWorkbook())
{
//Add DataTable in worksheet
//wb.Worksheets.Add(list);
IXLWorksheet worksheet = wb.Worksheets.Add("Students");
worksheet.Cell(1, 1).Value = "Employee Id";
worksheet.Cell(1, 2).Value = "Employee First Name";
worksheet.Cell(1, 3).Value = "Employee Last Name";
worksheet.Cell(1, 4).Value = "Aadhar";
IXLRange range = worksheet.Range(worksheet.Cell(1, 1).Address, worksheet.Cell(1, 4).Address);
range.Style.Fill.SetBackgroundColor(XLColor.Almond);
using (MemoryStream stream = new MemoryStream())
{
wb.SaveAs(stream);
return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
}
}
}
위는 컨트롤러 구문 입니다.
[cshtml]
<form method="post" asp-controller="Home" asp-action="Excel">
<input type="submit" value="Export" class="btn btn-primary" />
</form>
위의 코드로 작성하니 엑셀내려받기 아이콘이 하단에 정상적으로 나옵니다.
그런데 여기서
위의 버튼을 클릭하면 엑셀내려받겟냐는 메세지 표시후 "예" 를 선택하면
작업이 진행되도록 할려고 다음과 같이 바꾸엇습니다.
<div style="float:right">
<button type="button" class="btn btn-primary" xxonclick="ExcelExport_Msg()">Excel 변환</button>
</div>
<script type="text/javascript">
function ExcelExport_Msg() {
if (confirm("자료를 엑셀변환 하시겠습니까?"))
{
$.ajax({
type:"POST",
url:"@Url.Action("OrderFirstList_Excel","Home")",
success:function(data) {
}
})
}
}
</script>
이렇게 바꾸엇더니 메세지 정상출력. 컨트롤러까지 정상적으로 실행 되는데
정작 엑셀내려받기 아이콘이 표시되지 않고 그대로 입니다.
무엇이 문제일까요?
그럼 좋은 답변 기다리겠습니다.
감사합니다.