C#을 사용하여 Excel 파일로 데이터 내보내기

Muhammad Zeeshan 2023년10월12일
  1. C#을 사용하여 Excel로 데이터 내보내기
  2. C#을 사용하여 배열에서 Excel로 데이터 내보내기
  3. C#을 사용하여 DataTable에서 Excel로 데이터 내보내기
  4. C#을 사용하여 JSON에서 Excel로 데이터 내보내기
C#을 사용하여 Excel 파일로 데이터 내보내기

이 자습서에서는 C#에서 데이터를 Excel 파일로 내보내는 방법을 설명합니다.

C#을 사용하여 Excel로 데이터 내보내기

이 프로젝트를 진행하려면 참조를 추가하여 Excel 파일을 빌드하고 내보내는 것이 필요합니다.

참조 패키지 추가

Excel의 다양한 작업을 위해 ExcelMapper 패키지를 추가합니다. 그렇게 하려면 다음 단계를 따르십시오.

  • Visual Studio를 열고 콘솔 응용 프로그램을 만들고 이름을 지정합니다.
  • 솔루션 탐색기 패널을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다.
  • 이제 찾아보기 옵션을 클릭하고 ExcelMapper를 검색하여 설치합니다.

    참조 추가

패키지를 추가한 후 예제 프로그램의 코드를 작성합니다. 아래 예에서는 학생의 무작위 데이터를 사용합니다.

예:

  • 시작하려면 다음 라이브러리를 가져옵니다.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Ganss.Excel;
    
  • 이제 namemarks 데이터 멤버가 있는 Student 클래스를 만듭니다.
    public class Student {
      public String name { get; set; }
      public double marks { get; set; }
    }
    
  • Program이라는 다른 클래스를 만들고 해당 클래스에서 Main() 메서드를 만듭니다.
    public class Program {
      public static void Main(string[] args) {}
    }
    
  • Main() 메서드에서 Student 클래스의 List<> 유형 개체를 만듭니다.
    var s = new List<Student> {}
    
  • 이 개체는 아래와 같이 임의의 Student 데이터로 채워집니다.
    var s = new List<Student> {
      new Student { name = "M.Zeeshan", marks = 94.0 },
      new Student { name = "Shani", marks = 84.0 },
      new Student { name = "Saada g", marks = 74.0 },
      new Student { name = "Haseeba", marks = 34.0 },
    };
    
  • 그런 다음 maper라는 ExcelMapper 개체를 만듭니다.
    ExcelMapper maper = new ExcelMapper();
    
  • 방금 생성한 데이터를 저장하기 위해 필요한 경로 또는 디렉토리에 샘플 파일을 생성합니다.
    var newFile = @"D:\sample.xlsx";
    
  • 마지막으로 ExcelMapper의 maper.Save() 기능을 사용하여 파일을 저장합니다.
    maper.Save(newFile, s, "ShaniData", true);
    

완전한 소스 코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Ganss.Excel;

namespace DatatoExcelbyZeeshan {
  public class Program {
    public static void Main(string[] args) {
      var s = new List<Student> {
        new Student { name = "M.Zeeshan", marks = 94.0 },
        new Student { name = "Shani", marks = 84.0 },
        new Student { name = "Saada g", marks = 74.0 },
        new Student { name = "Haseeba", marks = 34.0 },
      };
      ExcelMapper maper = new ExcelMapper();
      var newFile = @"D:\sample.xlsx";
      maper.Save(newFile, s, "ShaniData", true);
      Console.ReadKey();
    }
  }
  public class Student {
    public String name { get; set; }
    public double marks { get; set; }
  }
}

sample.xlsx 파일에 다음 출력이 표시됩니다.

C# Excel로 데이터 내보내기 - 출력

C#을 사용하여 배열에서 Excel로 데이터 내보내기

실제로 이해하기 위해 예를 들어 보겠습니다.

참조 패키지 추가

Excel의 다양한 작업을 위해 ExcelMapper 패키지를 추가합니다. 그렇게 하려면 다음 단계를 따르십시오.

  • 먼저 Visual Studio를 열고 콘솔 응용 프로그램을 만들고 이름을 지정합니다.
  • 솔루션 탐색기 패널을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다.
  • 이제 찾아보기 옵션을 클릭하고 Spire.Xls를 검색하여 설치합니다.

    Spire Xls 추가

예:

  • 시작하려면 다음 라이브러리를 가져옵니다.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Spire.Xls;
    
  • 이제 Workbook의 새 인스턴스를 생성하고 wb라는 이름을 지정합니다.
    Workbook wb = new Workbook();
    
  • 워크시트를 포함하고 ws라는 이름을 지정합니다.
    Worksheet ws = wb.Worksheets.Add("ShaniArray");
    
  • 새 배열을 만들고 ProgramSubjectResults라는 이름을 지정한 다음 일부 데이터를 추가합니다.
    string[,] ProgramSubjectResults =
        new string[,] { { "Name", "City", "Gpa", "Language" },
                        { "Zeeshan", "ISB", "3.7", "Flutter Development" },
                        { "Saad Jaan", "RWP", "4.0", "Full Stack" },
                        { "Haseeba", "FATA", "3.53", "Andriod Development" } };
    
  • 워크시트에 배열을 포함하려면 셀부터 시작하십시오.
    ws.InsertArray(ProgramSubjectResults, 2, 1);
    ws.AllocatedRange.AutoFitColumns();
    
  • 마지막으로 방금 생성한 배열에 이름을 지정하고 Excel 파일로 저장합니다.
    wb.SaveToFile(@"D:\ArraytoExcel.xlsx", ExcelVersion.Version2016);
    

완전한 소스 코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spire.Xls;

namespace ExportArraytoExcelbyZeeshan {
  class Program {
    static void Main(string[] args) {
      Workbook wb = new Workbook();
      wb.Worksheets.Clear();
      Worksheet ws = wb.Worksheets.Add("ShaniArray");
      string[,] ProgramSubjectResults =
          new string[,] { { "Name", "City", "Gpa", "Language" },
                          { "Zeeshan", "ISB", "3.7", "Flutter Development" },
                          { "Saad Jaan", "RWP", "4.0", "Full Stack" },
                          { "Haseeba", "FATA", "3.53", "Andriod Development" } };
      ws.InsertArray(ProgramSubjectResults, 2, 1);
      ws.AllocatedRange.AutoFitColumns();
      wb.SaveToFile(@"D:\ArraytoExcel.xlsx", ExcelVersion.Version2016);
    }
  }
}

출력:

C# 배열을 Excel로 내보내기 - 출력

C#을 사용하여 DataTable에서 Excel로 데이터 내보내기

다음 예제를 사용하여 이 작업을 수행할 수 있는 방법을 살펴보겠습니다.

참조 패키지 추가

DataTable을 Excel로 내보내려면 ExcelMapper 패키지를 추가합니다. 그렇게 하려면 앞에서 논의한 단계를 따르십시오.

예:

  • 시작하려면 다음 라이브러리를 가져옵니다.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using Spire.Xls;
    
  • 이제 Workbook의 새 인스턴스를 생성하고 wb라는 이름을 지정합니다.
    Workbook wb = new Workbook();
    wb.Worksheets.Clear();
    
  • 워크시트 인스턴스를 포함하고 ws라는 이름을 지정합니다.
    Worksheet ws = wb.Worksheets.Add("DataTableToExcel");
    
  • DataTable 유형의 개체를 생성하고 dt라는 이름을 지정합니다.
    DataTable dt = new DataTable();
    
  • 롤 번호, 학생 이름섹션을 열로 추가합니다.
    dt.Columns.Add("Roll Number", typeof(String));
    dt.Columns.Add("Student Name", typeof(String));
    dt.Columns.Add("Section", typeof(String));
    
  • 이제 DataRow 유형의 개체를 만들고 dtr이라는 이름을 지정해야 합니다.
    DataRow dtr = dt.NewRow();
    
  • 아래와 같이 DataRow 열에 데이터를 삽입합니다.
    dtr[0] = "130-Arid-3227";
    dtr[1] = "Muhammad Zeeshan";
    dtr[2] = "Bs(IT)8A";
    dt.Rows.Add(dtr);
    dtr = dt.NewRow();
    dtr[0] = "123-Arid-3156";
    dtr[1] = "Bubby Shah";
    dtr[2] = "Bs(AI)7C";
    dt.Rows.Add(dtr);
    dtr = dt.NewRow();
    
  • 생성한 스프레드시트에 DataTable 열을 작성합니다.
    ws.InsertDataTable(dt, true, 1, 1, true);
    
  • 마지막으로 문서에 이름을 지정하고 Excel 파일로 저장합니다.
    wb.SaveToFile(@"C:\DataTableToExcel.xlsx", ExcelVersion.Version2016);
    

완전한 소스 코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using Spire.Xls;

namespace ExportDataTableToExcelByZeeshan {
  class Program {
    static void Main(string[] args) {
      Workbook wb = new Workbook();
      wb.Worksheets.Clear();
      Worksheet ws = wb.Worksheets.Add("DataTableToExcel");
      DataTable dt = new DataTable();
      dt.Columns.Add("Roll Number", typeof(String));
      dt.Columns.Add("Student Name", typeof(String));
      dt.Columns.Add("Section", typeof(String));
      DataRow dtr = dt.NewRow();
      dtr[0] = "130-Arid-3227";
      dtr[1] = "Muhammad Zeeshan";
      dtr[2] = "Bs(IT)8A";
      dt.Rows.Add(dtr);
      dtr = dt.NewRow();
      dtr[0] = "123-Arid-3156";
      dtr[1] = "Bubby Shah";
      dtr[2] = "Bs(AI)7C";
      dt.Rows.Add(dtr);
      dtr = dt.NewRow();
      ws.InsertDataTable(dt, true, 1, 1, true);
      wb.SaveToFile(@"C:\DataTableToExcel.xlsx", ExcelVersion.Version2016);
    }
  }
}

출력:

C# DataTable을 Excel로 내보내기 - 출력

C#을 사용하여 JSON에서 Excel로 데이터 내보내기

아래 예제는 실제로 C#을 사용하여 JSON 데이터를 Excel로 내보내는 방법을 이해하는 데 도움이 됩니다.

참조 패키지 추가

Excel의 Json 작업을 위해 GemBox.SpreadsheetNewtonsoft.Json 패키지를 추가합니다. 그렇게 하려면 다음 단계를 따르십시오.

  • 먼저 Visual Studio를 열고 콘솔 응용 프로그램을 만들고 이름을 지정합니다.
  • 솔루션 탐색기 패널을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다.
  • 이제 찾아보기 옵션을 클릭하고 GemBox.SpreadsheetNewtonsoft.Json을 검색하여 설치합니다.

    GemBox 추가

    Json 추가

예:

  • 시작하려면 다음 라이브러리를 가져옵니다.
    using System;
    using System.Collections.Generic;
    using GemBox.Spreadsheet;
    using Newtonsoft.Json;
    
  • GemBox.Spreadsheet 패키지의 다른 클래스를 사용하기 전에 SpreadsheetInfo.SetLicense() 기능을 사용하여 라이선스를 초기화해야 합니다.
    SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
    
  • 이제 JsonData라는 이름으로 JSON 파일을 만들고 Students 데이터로 채웁니다.
    string JsonData =
        @"{
      ""0"": {
    	""Name"": ""Muhammad Zeeshan"",
    	""Roll"": ""3227"",
    	""GPA"": 3.11,
    	""Fyp"": ""Garden Guide System""
    	},
      ""1"" : {
    	""Name"": ""Bubby Shah"",
    	""Roll"": ""3265"",
    	""GPA"": 2.9,
    	""Fyp"": ""Football Field Management""
      },
      ""2"" : {
    	""Name"": ""Haseeb-Ur-Rehman"",
    	""Roll"": ""3156"",
    	""GPA"": 3.9,
    	""Fyp"": ""Plants Recognition""
    	}
      }";
    
  • JSON 파일을 정의한 후 JSON 문자열을 역직렬화합니다.
    Dictionary<string, Student> shani =
        JsonConvert.DeserializeObject<Dictionary<string, Student>>(JsonData);
    
  • Excel에서 새 워크시트를 만들고 이름을 ws로 지정합니다. 그런 다음 워크시트의 머리글 값을 만듭니다.
    ExcelWorksheet ws = wb.Worksheets.Add("ShaniJSON" + "");
    ws.Cells[0, 0].Value = "Student Name";
    ws.Cells[0, 1].Value = "Roll No";
    ws.Cells[0, 2].Value = "GPA";
    ws.Cells[0, 3].Value = "FYP";
    
  • 워크시트가 생성된 후 역직렬화된 데이터를 워크시트에 기록합니다.
    int row = 0;
    foreach (Student user in shani.Values) {
      ws.Cells[++row, 0].Value = user.Fname;
      ws.Cells[row, 1].Value = user.Roll;
      ws.Cells[row, 2].Value = user.Gpa;
      ws.Cells[row, 3].Value = user.Fyp;
    }
    
  • 마지막 단계에서 파일을 지정된 디렉토리에 Excel 파일로 저장합니다.
    wb.Save(@"D:\JSON TO Excel by Zeeshan.xlsx");
    

완전한 소스 코드:

using System;
using System.Collections.Generic;
using GemBox.Spreadsheet;
using Newtonsoft.Json;

namespace JsontoExcelByZeeshan {
  class Program {
    static void Main(string[] args) {
      SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
      string JsonData =
          @"{
      ""0"": {
        ""Name"": ""Muhammad Zeeshan"",
        ""Roll"": ""3227"",
        ""GPA"": 3.11,
        ""Fyp"": ""Garden Guide System""
      },
      ""1"" : {
        ""Name"": ""Bubby Shah"",
        ""Roll"": ""3265"",
        ""GPA"": 2.9,
        ""Fyp"": ""Football Field Management""
      },
      ""2"" : {
        ""Name"": ""Haseeb-Ur-Rehman"",
        ""Roll"": ""3156"",
        ""GPA"": 3.9,
        ""Fyp"": ""Plants Recognition""
      }
    }";
      Dictionary<string, Student> shani =
          JsonConvert.DeserializeObject<Dictionary<string, Student>>(JsonData);
      ExcelFile wb = new ExcelFile();
      ExcelWorksheet ws = wb.Worksheets.Add("ShaniJSON" + "");
      ws.Cells[0, 0].Value = "Student Name";
      ws.Cells[0, 1].Value = "Roll No";
      ws.Cells[0, 2].Value = "GPA";
      ws.Cells[0, 3].Value = "FYP";

      int row = 0;
      foreach (Student user in shani.Values) {
        ws.Cells[++row, 0].Value = user.Fname;
        ws.Cells[row, 1].Value = user.Roll;
        ws.Cells[row, 2].Value = user.Gpa;
        ws.Cells[row, 3].Value = user.Fyp;
      }
      wb.Save(@"D:\JSON TO Excel by Zeeshan.xlsx");
    }
  }
  class Student {
    [JsonProperty("Name")]
    public string Fname { get; set; }

    [JsonProperty("Roll")]
    public string Roll { get; set; }

    [JsonProperty("GPA")]
    public float Gpa { get; set; }

    [JsonProperty("Fyp")]
    public string Fyp { get; set; }
  }
}

출력:

C# JSON을 Excel로 내보내기 - 출력

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

관련 문장 - Csharp Excel