이 질문은 ASP.NET MVC 응용 프로그램에서 Excel로 데이터를 내보내는 데 중점을 둡니다. 제공된 가이드에서는 HTML에서 Excel로의 변환 접근 방식을 제안하지만 이 기사에서는 적절한 Excel 파일을 만들기 위해 Excel 패키지 라이브러리인 EPPlus를 사용하는 방법을 살펴봅니다.
EPPlus는 다음과 같은 기능을 제공합니다. LoadFromDataTable 및 LoadFromCollection과 같은 메서드를 사용하여 Excel 범위를 데이터로 채웁니다. 다음은 Excel 파일 생성의 예입니다.
using (ExcelPackage package = new ExcelPackage()) { var ws = package.Workbook.Worksheets.Add("My Sheet"); ws.Cells["A1"].LoadFromDataTable(dataTable, true); var stream = new MemoryStream(); package.SaveAs(stream); string fileName = "myfilename.xlsx"; string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; stream.Position = 0; return File(stream, contentType, fileName); }
EPPlus에서는 형식을 지정하고 내보낸 데이터에 테이블 스타일을 적용할 수 있습니다. 예:
var range = ws.Cells["A1"].LoadFromDataTable(table); range.Style.Numberformat.Format = "#,##0.00"; range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right; ws.Cells[1,1].LoadFromDataTable(table, true, TableStyles.Light1);
스트림 처리 문제를 방지하려면 사용자 정의 FileResult 클래스를 생성하여 EPPlus 패키지 응답을 관리할 수 있습니다.
public class EpplusResult : FileResult { public EpplusResult(ExcelPackage package) : base("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { if (package == null) { throw new ArgumentNullException("package"); } Package = package; } public ExcelPackage Package { get; private set; } protected override void WriteFile(HttpResponseBase response) { Stream outputStream = response.OutputStream; using (Package) { Package.SaveAs(outputStream); } } }
public FileResult ExportData() { ExcelPackage package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add("My Sheet"); ... ws.Cells[1, 1].LoadFromDataTable(table, true, TableStyles.Light1); return new EpplusResult(package) { FileDownloadName = "SomeFile.xlsx" }; }
위 내용은 EPPlus를 사용하여 ASP.NET MVC 응용 프로그램에서 Excel로 데이터를 효율적으로 내보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!