IRONXLの使用

C#でCSVファイルにデータを書き込む方法

リーガン・パン
リーガン・パン
2023年6月20日
更新済み 2024年3月31日
共有:

この記事では、IronXLを使用してCSVファイルを作成する方法を探ります。

IronXLライブラリ

IronXL は、C# アプリケーションでスプレッドシートファイルの作成、読み取り、編集のための包括的な機能を提供する .NET の Excel ライブラリです。 パフォーマンスおよび出力の正確性において優れています。 XLS、XLSX、XLSM、CSV、TSV などのさまざまなスプレッドシートワークブックファイル形式をサポートしています。さらに、ExcelファイルからCSV、JSON、HTML、バイナリ、バイト配列、DataSet、またはDataTable形式に保存またはエクスポートすることができます。

IronXLを使用すると、開発者はワークシートやセル範囲をシームレスに操作でき、データの操作にエレガントなアプローチを提供します。 シート内での簡単な数式の編集と数式の再計算を促進します。 データの並べ替えは、範囲、列、行に基づいて簡単に行えます。 ペインを固定したり、行や列を自動サイズ調整したり、行や列を追加/削除することでレイアウトを変更することもできます。

IronXLは、ユーザーパスワードでExcelファイルを保護し、編集権限を設定する機能を提供します。 さらに、Excelワークシートから画像を追加、削除、抽出する機能を提供します。 ライブラリにはさまざまなセルデータ形式をサポートする広範なExcel機能が含まれています。 これにより、IronXLはExcelファイルを操作するための最も直感的なAPIの1つとなります。

IronXLの大きな利点の一つは、マシンにMicrosoft ExcelやOffice Interopの依存関係をインストールする必要がないことです。これは自己完結型のソリューションであり、複数のプラットフォームで動作し、.NETバージョン7、6、および5に対応しています。また、.NET Core 2および3、さらに標準2バージョンもサポートしています。 Excelスプレッドシートを操作するために、IronXLは.NET Framework 4.5およびそれ以降のバージョンと互換性があります。

コンソールアプリケーションを作成する

アプリケーションを作成するには、最新バージョンのVisual Studioを使用することをお勧めします。 Visual StudioはC#開発の公式IDEであり、インストールしておく必要があります。 インストールされていない場合は、Microsoft Visual Studioのウェブサイトからダウンロードできます。

次の手順で「DemoApp」という新しいプロジェクトを作成します。

  1. Visual Studio を開き、「Create a New Project」をクリックしてください。

    CSVファイルにデータを書き込む方法(C#)、図1: Visual Studioを開く

    Visual Studio を開く

  2. 「コンソールアプリケーション」を選択し、「次へ」をクリックします。

    C#でCSVファイルにデータを書き込む方法、図2: Visual Studioで新しいプロジェクトを作成する

    Visual Studioで新しいプロジェクトを作成する

  3. プロジェクトの名前を設定する

    CSVファイルにデータを書き込む方法(C#)、図3:新しいプロジェクトを構成する

    新しいプロジェクトを構成する

  4. .NETバージョンを選択してください。 安定版の.NET 6.0を選択してください。

    C#でCSVファイルにデータを書き込む方法、図4: .NET Frameworkの選択

    .NET Frameworkの選択

IronXLライブラリをインストール

プロジェクトが作成されたら、使用するためにIronXLライブラリをプロジェクトにインストールする必要があります。 インストールするには、次の手順に従ってください。

  1. ソリューション エクスプローラーまたはツールからNuGetパッケージ マネージャーを開きます。

    CSVファイルにC#でデータを書く方法、図5:NuGetパッケージマネージャーに移動

    NuGet パッケージ マネージャーに移動

  2. IronXLライブラリを参照し、現在のプロジェクトを選択します。 インストールをクリックしてください。

    C#でCSVファイルにデータを書く方法、図6: NuGetパッケージマネージャーUIでIronXLパッケージを検索してインストールする

    NuGet パッケージ マネージャの UI で IronXL パッケージを検索してインストールする

    Program.csファイルの先頭に次の名前空間を追加します。

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

C#で新しいワークブックを作成

IronXLは空のワークブックを作成する機能を提供します。 ワークブックは、複数のワークシートを含むスプレッドシートです。 データはセルに保存されます。 CSV もスプレッドシートのように見えますが、CSV というファイル拡張子になっています。

// Creates a new Instance of WorkBook SpreadSheet
WorkBook workBook = new WorkBook();
// Creates a new Instance of WorkBook SpreadSheet
WorkBook workBook = new WorkBook();
' Creates a new Instance of WorkBook SpreadSheet
Dim workBook As New WorkBook()
$vbLabelText   $csharpLabel

次に、WorkBookにシートを作成しましょう。 ワークブック内でワークシートを作成するには、複数の方法があります。

// Adds sheet1 to the workbook
WorkSheet sheet = workBook.DefaultWorkSheet;

// Creates a worksheet with name Sheet1
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
// Adds sheet1 to the workbook
WorkSheet sheet = workBook.DefaultWorkSheet;

// Creates a worksheet with name Sheet1
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
' Adds sheet1 to the workbook
Dim sheet As WorkSheet = workBook.DefaultWorkSheet

' Creates a worksheet with name Sheet1
Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

既存のワークブックにさらにシートを追加したい場合は、CreateWorkSheet メソッドを使用してください。

注: WorkBook.LoadCSV メソッドは、CSVファイルが既に存在する場合に使用できます。 既存のCSVファイルを読み込むためのコード例ページはこちらをご覧ください。

WorkSheetにデータを書き込む

IronXLを使用するとCSVファイルの作成が簡単です。 CSVにデータを書き込むためのExcel機能を提供します。セル参照を使用して、指定された場所に値を追加することができます。 ここでは、foreachループを使用していくつかの従業員のレコードを追加します。

string [] employeenames = { "John", "Peter", "Harry", "Kevin", "Brian" };
int i = 2;
sheet ["A1"].Value = "ID";
sheet ["B1"].Value = "Name";
sheet ["C1"].Value = "Salary";

foreach (var employee in employeenames)
{
    sheet ["A" + i].Value = i;
    sheet ["B" + i].Value = employee;
    sheet ["C" + i].Value = i * 1000;
    i++;
}
string [] employeenames = { "John", "Peter", "Harry", "Kevin", "Brian" };
int i = 2;
sheet ["A1"].Value = "ID";
sheet ["B1"].Value = "Name";
sheet ["C1"].Value = "Salary";

foreach (var employee in employeenames)
{
    sheet ["A" + i].Value = i;
    sheet ["B" + i].Value = employee;
    sheet ["C" + i].Value = i * 1000;
    i++;
}
Dim employeenames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }
Dim i As Integer = 2
sheet ("A1").Value = "ID"
sheet ("B1").Value = "Name"
sheet ("C1").Value = "Salary"

For Each employee In employeenames
	sheet ("A" & i).Value = i
	sheet ("B" & i).Value = employee
	sheet ("C" & i).Value = i * 1000
	i += 1
Next employee
$vbLabelText   $csharpLabel

上記のコード例では、employeenamesの配列が作成され、最初の行にヘッダーとしてID、Name、Salaryが設定されます。 変数iも値2で初期化されており、ヘッダーの下の2番目の行からレコードに入ります。 foreachループは、リストから1つの従業員を取得し、IDと給与の値とともに行に追加します。 ループが終了する前に、iの値をインクリメントする必要があります。そうしないと、各レコードが同じ行に追加されてしまいます。

データをCSVファイルに保存する

最後のステップはCSVファイルを保存することです。IronXLはワークブックをCSVファイルとして保存するためのメソッドSaveAsCsvを提供しています。このメソッドの最初のパラメーターはCSVファイル名で、2番目は区切り文字です。

workBook.SaveAsCsv("sample.csv", ",");
workBook.SaveAsCsv("sample.csv", ",");
workBook.SaveAsCsv("sample.csv", ",")
$vbLabelText   $csharpLabel

以下の内容は次のとおりです。

using System;
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

string [] employeenames = { "John", "Peter", "Harry", "Kevin", "Brian" };
int i = 2;
sheet ["A1"].Value = "ID";
sheet ["B1"].Value = "Name";
sheet ["C1"].Value = "Salary";

foreach (var employee in employeenames)
{
    sheet ["A" + i].Value = i;
    sheet ["B" + i].Value = employee;
    sheet ["C" + i].Value = i * 1000;
    i++;
}

workBook.SaveAsCsv("sample.csv", ",");
using System;
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

string [] employeenames = { "John", "Peter", "Harry", "Kevin", "Brian" };
int i = 2;
sheet ["A1"].Value = "ID";
sheet ["B1"].Value = "Name";
sheet ["C1"].Value = "Salary";

foreach (var employee in employeenames)
{
    sheet ["A" + i].Value = i;
    sheet ["B" + i].Value = employee;
    sheet ["C" + i].Value = i * 1000;
    i++;
}

workBook.SaveAsCsv("sample.csv", ",");
Imports System
Imports IronXL

Private workBook As WorkBook = WorkBook.Create()
Private sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

Private employeenames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }
Private i As Integer = 2
Private sheet ("A1").Value = "ID"
Private sheet ("B1").Value = "Name"
Private sheet ("C1").Value = "Salary"

For Each employee In employeenames
	sheet ("A" & i).Value = i
	sheet ("B" & i).Value = employee
	sheet ("C" & i).Value = i * 1000
	i += 1
Next employee

workBook.SaveAsCsv("sample.csv", ",")
$vbLabelText   $csharpLabel

出力

C#でCSVファイルにデータを記述する方法、図7: 出力CSVファイル

出力CSVファイル

サマリー

この記事では、C#でIronXLを使用してCSVファイルを作成するための簡単なアプローチを紹介します。 IronXLは、既存のCSVファイルを問題なく操作する機能も提供します。 また、CSVファイルの書き込み、新しいExcelファイルの作成、それらへのデータの書き込みをシンプルな構文で行うことができます。 IronXLは、Microsoft OfficeがインストールされていなくてもExcelファイルの読み書きに使用できます。 異なるスプレッドシート形式間の変換については、このコード例のページをご覧ください。

IronXL は開発には無料で使用でき、商用利用にはライセンスが必要です。 商業利用向けにIronXLの無料試用版もお試しいただけます。

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
ASP.NETでExcelを表示する方法
次へ >
C#を使用してExcelセルの背景色を設定する方法