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 を検索してインストールします。

    尖塔 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();
    
  • 新しい Worksheet を含めて、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();
    
  • 新しい Worksheet インスタンスを含めて、ws という名前を付けます。
    Worksheet ws = wb.Worksheets.Add("DataTableToExcel");
    
  • DataTable 型のオブジェクトを作成し、dt という名前を付けます。
    DataTable dt = new DataTable();
    
  • Roll NumberStudent Name、および Sections を列として追加します。
    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# データテーブルを 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