반응형

먼저 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>

반응형

+ Recent posts