Asp.Net Core 엑셀 내 보 내기 기능 실현 방법

웹 응용 프로그램 을 개발 할 때 이러한 수 요 를 만 날 수 있 습 니 다.Asp.Net Core 에서 엑셀 이나 워드 의 가 져 오기 내 보 내기 를 어떻게 실현 하 는 지,NuGet 에 대량의 공구 꾸러미 가 이러한 기능 을 실현 할 수 있 습 니 다.본 편 은 Closed XML 을 사용 하여 엑셀 데이터 내 보 내기 를 어떻게 실현 하 는 지 에 대해 토론 합 니 다.
Closed XML 설치
Excel 내 보 내기 기능 을 실현 하려 면 Asp.Net Core 에 dll 이 많이 있 습 니 다.그 중 하 나 는 Closed XML 이 라 고 합 니 다.시각 화 된 인터페이스 NuGet package manager 를 통 해 설치 할 수도 있 고 명령 행 NuGet package manager console 을 사용 하여 다음 명령 을 수행 할 수도 있 습 니 다.

Install-Package ClosedXML
데 이 터 를 CSV 파일 로 내 보 내기
데 이 터 를 CSV 파일 로 유도 하 는 것 은 매우 간단 합 니 다.모든 줄 의 데 이 터 를 사용 하고 분리 하면 됩 니 다.NuGet 의 CsvExport 나 AWright 18.Simple CSVExporter 로 이 루어 질 수 있 습 니 다.물론 자신 이 매우🐂👃,직접 칼 을 써 서 이 룰 수 있 습 니 다.다음은 제 가 직접 이 루 려 고 합 니 다.아래 에 정 의 된 Author 류 를 먼저 보 겠 습 니 다.

public class Author
{
 public int Id { get; set; }
 public string FirstName { get; set; }
 public string LastName { get; set; }
}
그리고 authors 목록 에 데 이 터 를 넣 습 니 다.다음 코드 는 다음 과 같 습 니 다.

List<Author> authors = new List<Author>
{
  new Author { Id = 1, FirstName = "Joydip", LastName = "Kanjilal" },
  new Author { Id = 2, FirstName = "Steve", LastName = "Smith" },
  new Author { Id = 3, FirstName = "Anand", LastName = "Narayaswamy"}
};
Action 의 csv 내 보 내기 기능 을 실현 하기 위해 DownloadCommaSeperatedFile 방법 을 정의 합 니 다.

public IActionResult DownloadCommaSeperatedFile()
{
  try
  {
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.AppendLine("Id,FirstName,LastName");
    foreach (var author in authors)
    {
      stringBuilder.AppendLine($"{author.Id},
      {author.FirstName},{author.LastName}");
    }
   return File(Encoding.UTF8.GetBytes
   (stringBuilder.ToString()), "text/csv", "authors.csv");
  }
  catch
  {
    return Error();
  }
}
XLSX 파일 로 데 이 터 를 내 보 냅 니 다.
Excel 의 워 크 북 은 여러 개의 워 크 시트 로 구성 되 어 있 으 며,아래 코드 는 워 크 북 을 만 드 는 데 사용 할 수 있 습 니 다.

var workbook = new XLWorkbook();
다음은 워 크 시트 를 만 든 다음 워 크 시트 에 데 이 터 를 입력 하 십시오.코드 는 다음 과 같 습 니 다.

IXLWorksheet worksheet = workbook.Worksheets.Add("Authors");
worksheet.Cell(1, 1).Value = "Id";
worksheet.Cell(1, 2).Value = "FirstName";
worksheet.Cell(1, 3).Value = "LastName";
for (int index = 1; index <= authors.Count; index++)
{
  worksheet.Cell(index + 1, 1).Value = authors[index - 1].Id;
  worksheet.Cell(index + 1, 2).Value = authors[index - 1].FirstName;
  worksheet.Cell(index + 1, 3).Value = authors[index - 1].LastName;
}
마지막 으로 워 크 북 을 메모리 스 트림(memory stream)으로 바 꾸 고 Controller.Action 의 FileContentResult 를 통 해 클 라 이언 트 에 게 되 돌려 줍 니 다.코드 는 다음 과 같 습 니 다.

using (var stream = new MemoryStream())
{
   workbook.SaveAs(stream);
   var content = stream.ToArray();
   return File(content, contentType, fileName);
}
엑셀 다운로드
다음은 Excel 의 모든 업무 논리 코드 를 내 보 냅 니 다.이 Action 은 Excel 내 보 내기 기능 을 실 현 했 습 니 다.

    public IActionResult DownloadExcelDocument()
    {
      string contentType = "application/vnd.openxmlformats-
      officedocument.spreadsheetml.sheet";
      string fileName = "authors.xlsx";
      try
      {
        using (var workbook = new XLWorkbook())
        {
          IXLWorksheet worksheet =
          workbook.Worksheets.Add("Authors");
          worksheet.Cell(1, 1).Value = "Id";
          worksheet.Cell(1, 2).Value = "FirstName";
          worksheet.Cell(1, 3).Value = "LastName";
          for (int index = 1; index <= authors.Count; index++)
          {
            worksheet.Cell(index + 1, 1).Value =
            authors[index - 1].Id;
            worksheet.Cell(index + 1, 2).Value =
            authors[index - 1].FirstName;
            worksheet.Cell(index + 1, 3).Value =
            authors[index - 1].LastName;
          }
          using (var stream = new MemoryStream())
          {
            workbook.SaveAs(stream);
            var content = stream.ToArray();
            return File(content, contentType, fileName);
          }
        }
      }
      catch(Exception ex)
      {
        return Error();
      }
    }
이 편 은 Closed XML 의 모든 내용 입 니 다.Excel 의 데 이 터 를 더욱 복잡 하 게 조작 하려 면 Magicodes.IE 를 사용 하 십시오.Closed XML 에 대한 더 많은 내용 은 참고 하 십시오https://github.com/ClosedXML/ClosedXML
링크
여기 서 Asp.Net Core 가 Excel 내 보 내기 기능 을 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 Asp.Net Core 가 Excel 내 보 내기 내용 을 실현 하 는 것 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기