먼저 NuGet 설치관리자에 들어가서 ClosedXML 설치해준다.
다음으로 Controller 에가서 다음을 작성해준다.
[HttpPost]
public FileResult Excel_Download()
{
string fileName = "Sample.xlsx";
using (var wb = new XLWorkbook())
{
IXLWorksheet worksheet = wb.Worksheets.Add("Students");
worksheet.Cell(1, 1).Value = "Id";
worksheet.Cell(1, 2).Value = "Name";
worksheet.Cell(1, 3).Value = "Add";
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_Download">
<input type="submit" value="Export" class="btn btn-primary" />
</form>
한가지더 여기서 엑셀변환 메세지를 보여주고 싶다면 다음과 같이 하면 된다.
<button type="button" class="btn btn-primary" onclick="ExcelExport_Msg()">Export</button>
<script type="text/javascript">
function ExcelExport_Msg() {
if (confirm("자료를 엑셀변환 하시겠습니까?"))
{
$.ajax({
type:"POST",
url:"@Url.Action("Excel_Download","Home")",
xhrFields: {
responseType: 'blob'
},
success:function(data) {
var a = document.createElement('a');
var url = window.URL.createObjectURL(data);
a.href = url;
a.download = "Sample.xlsx";
document.body.append(a);
a.click();
a.remove();
window.URL.revokeObjectURL(url); }
})
}
}
</script>
'프로그램 > ASP.NET' 카테고리의 다른 글
HttpContext.Session.SetString 'cshtml' 페이지에서 사용 (0) | 2023.06.02 |
---|