フッターコンテンツにスキップ
IRONXLの使用

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

この記事では、IronXLを使用してCSVファイルをどのように書くかについて探ります。

IronXLライブラリー

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

IronXLを使用すると、開発者はシームレスにワークシートやセル範囲と連携し、データを操作する優雅な手法を提供します。 式の簡単な編集を許可し、シート内の式の再計算を促進します。 範囲、列、または行に基づいたデータの並べ替えは簡単です。 You can also modify layouts by freezing panes, auto-sizing rows/columns, and adding/removing rows/columns.

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 を開き、「新しいプロジェクトを作成」をクリックします。

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

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

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

  1. プロジェクトの名前を設定します

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

  1. .NET バージョンを選択します。 安定版バージョン.NET 6.0を選択します。

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

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

プロジェクトが作成されたら、IronXLライブラリをプロジェクトにインストールして使用します。 それをインストールするために次のステップに従います。

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

CSVファイルにデータを書き込む方法 C#、図5: NuGetパッケージマネージャーへのナビゲート NuGet パッケージ マネージャーに移動する

  1. IronXLライブラリを検索し、現在のプロジェクトを選択します。 インストールをクリックします。

CSVファイルにデータを書き込む方法 C#、図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 = WorkBook.Create();
// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
' Creates a new instance of WorkBook Spreadsheet
Dim workBook As WorkBook = WorkBook.Create()
$vbLabelText   $csharpLabel

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

// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;

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

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

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

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

注意: CSVファイルが既に存在する場合は、WorkBook.LoadCSVメソッドを使用できます。 既存のCSVファイルを読み込むには、このコード例ページを参照できます。

WorkSheetにデータを書く

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

// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
' Initialize an array of employee names
Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

' Starting row for data entry
Dim i As Integer = 2

' Setting header titles for the columns
sheet("A1").Value = "ID"
sheet("B1").Value = "Name"
sheet("C1").Value = "Salary"

' Populate each row with employee data
For Each employee In employeeNames
	' Set values for ID, Name, and Salary
	sheet("A" & i).Value = i
	sheet("B" & i).Value = employee
	sheet("C" & i).Value = i * 1000
	i += 1
Next employee
$vbLabelText   $csharpLabel

上記のコード例では、employeeNamesの配列が作成され、ID、名前、給与の見出しで最初の行が設定されています。 変数iも値2で初期化され、見出しの下の2行目から記録が入力されます。 foreachループは、リスト内の各従業員を処理し、現在の行にIDと給与の値を追加します。 ループが完了する前に、次の記録の次の行に移動するためにiがインクリメントされます。

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

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

// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
' Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",")
$vbLabelText   $csharpLabel

完全なコードは次のとおりです。

using System;
using IronXL;

class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
using System;
using IronXL;

class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
Imports System
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Create a new workbook and worksheet
		Dim workBook As WorkBook = WorkBook.Create()
		Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

		' Initialize an array of employee names
		Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

		' Starting row for data entry
		Dim i As Integer = 2

		' Setting header titles for the columns
		sheet("A1").Value = "ID"
		sheet("B1").Value = "Name"
		sheet("C1").Value = "Salary"

		' Populate each row with employee data
		For Each employee In employeeNames
			' Set values for ID, Name, and Salary
			sheet("A" & i).Value = i
			sheet("B" & i).Value = employee
			sheet("C" & i).Value = i * 1000
			i += 1
		Next employee

		' Save the modified workbook as a CSV file with a specified delimiter
		workBook.SaveAsCsv("sample.csv", ",")
	End Sub
End Class
$vbLabelText   $csharpLabel

出力

CSVファイルにデータを書き込む方法 C#、図7: 出力CSVファイル 出力されたCSVファイル

まとめ

この記事は、IronXLを使用してC#でCSVファイルを書くためのシンプルなアプローチを示しています。 IronXLは既存のCSVファイルを問題なく扱う機能も提供しています。 また、CSVファイルの書き込み、新しいExcelファイルの作成、および簡単な構文でそれらにデータを書くことも可能です。 IronXLを使用して、Microsoft Officeをインストールせずに、Excelファイルを読み書きできます。 さまざまなスプレッドシート形式間の変換については、このコード例ページを参照できます。

IronXL は開発用に無料で、商用利用のためにライセンスを取得できます。 商業利用のためのIronXLの無料トライアルも試すことができます。

よくある質問

C#でCSVファイルにデータを書き込むにはどうすればよいですか?

IronXLの`SaveAsCsv`メソッドを使用して、C#でデータをCSVファイルにエクスポートできます。まず、ワークブックとワークシートを作成し、セルにデータを書き込み、その後`workBook.SaveAsCsv("filename.csv", ",");`を使用してCSVファイルとして保存します。

CSVファイルを書き込むためのコンソールアプリケーションを作成する手順は何ですか?

CSVファイルを書き込むためのコンソールアプリケーションを作成するには、Visual Studioで新しいプロジェクトをセットアップし、適切な.NETバージョンを選択し、NuGetパッケージマネージャーからIronXLをインストールします。その後、IronXLを使用してワークブックを作成し、ワークシートにデータを追加し、CSVとして保存します。

Microsoft Excelを使用せずにCSVファイルにデータを書き込めますか?

はい、IronXLを使用してMicrosoft Excelを使用せずにCSVファイルにデータを書き込むことができます。これにより、ExcelをインストールすることなくプログラムでExcelおよびCSVファイルを操作できます。

Visual Studio プロジェクトに IronXL をインストールする方法を教えてください。

Visual StudioのNuGetパッケージマネージャーを開き、'IronXL'を検索して'インストール'をクリックすると、プロジェクトに追加することができます。これにより、ExcelおよびCSVファイルを操作するためのIronXLの機能を利用できるようになります。

IronXLはどのファイル形式をエクスポートにサポートしていますか?

IronXLは、CSV、JSON、HTML、バイナリ、バイト配列、データセット、およびデータテーブルなど、さまざまな形式へのエクスポートをサポートしており、さまざまなデータ処理ニーズに対応できます。

IronXLは異なる.NETバージョンに対応していますか?

はい、IronXLは多数の.NETバージョン、.NET Core 2および3、.NET 5、6、7に対応しており、異なる開発環境での柔軟性を提供します。

IronXLを商用プロジェクトで使用できますか?

はい、IronXLは商業目的でライセンスできます。また、開発用途での無料試用版を提供しており、開発者が商用ライセンスを取得する前にその機能を試すことができます。

C#でIronXLを使用して新しいワークブックとワークシートを作成するにはどうすればよいですか?

`WorkBook.Create()`を利用してワークブックオブジェクトを初期化し、その後新しいワークシートを追加することで、新しいワークブックとワークシートを作成できます。これにより、ワークシートにデータを書き始めることができます。

IronXLはOffice Interop依存性が必要ですか?

いいえ、IronXLはスタンドアロンライブラリであり、Office Interop依存性は必要ありません。これにより、さまざまなプラットフォームでのアプリケーションに簡単に使用およびデプロイできます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。