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

C#で.NET Coreを使用してCSVにエクスポートする方法

1.0 はじめに

最もよく知られているライブラリの1つであるIronXLは、この記事で異なる方法を比較して、.NETテクノロジーがMicrosoft Excelドキュメントとプログラム的にインターフェースする方法を対比し比較するために使用されます。 また、ExcelスプレッドシートをCSVファイルに読み取り、書き込み、エクスポートする環境を構築します。

2.0 IronXL

.NET用IronXLは、C#のExcelライブラリで、Microsoft ExcelドキュメントをCSVファイルに読み取り、変換するために使用できます。 IronXLは、Microsoft OfficeやMicrosoft.Office.Interop.Excelのインストールなしで使用できるスタンドアロンの.NETソフトウェアライブラリです。 さまざまなスプレッドシート形式を読み取ることができます。

IronXLのシンプルなC# APIのおかげで、.NET環境でExcelスプレッドシートを簡単に読み取り、編集、生成することができます。 Xamarin、Linux、macOS、Azure、.NET Core、.NET FrameworkはすべてIronXLに完全対応しています。

2.1 IronXLライブラリの特徴

  • .NET Coreと.NET Frameworkの両方と互換性があるExcelスプレッドシート用の最高のC#ライブラリの1つがIronXLです。
  • IronXLはコンソール、Windowsフォーム、Webアプリケーションを含むほぼすべての.NETフレームワークをサポートしています。
  • IronXLはWindows、macOS、Linuxと互換性があります。
  • ExcelファイルはIronXLで迅速かつ簡単にアクセスできます。
  • XLSXファイル、CSVファイル、XLS、XSLT、TSV、XLSMなどのExcelファイル形式をIronXLは読み取ることができます。 多くの可能性の中には、データセットやデータテーブルのインポート、更新、エクスポートの機能があります。
  • IronXLはExcelスプレッドシートの計算を生成できます。
  • IronXLはExcel列に対して、テキスト、整数、日付、通貨、数式、パーセンテージなどさまざまなデータ型をサポートしています。
  • 日付、通貨、パーセンテージ、テキスト、数字、数式、および他のExcel列のデータ型をIronXLはサポートしています。

3.0 .NET Core 6プロジェクトの作成

このニュースレターの次のセクションでは、IronXLライブラリを使用してCSVファイルを作成するのがどれほど簡単かを見ていきます。

ステップ1: CSVファイルを生成する新しいプロジェクトを開始します。

Visual Studioを開き、「ファイル」メニューから「新しいプロジェクト」を選択します。

続くダイアログボックスから「コンソールアプリ」.NETプロジェクトテンプレートを選択し、「次へ」をクリックします。

.NET CoreでCSVにエクスポートする方法、図1: Visual Studioで新しいコンソールアプリケーションを作成する Visual Studioで新しいコンソールアプリケーションを作成する

「プロジェクト名」には好きな名前を入力できます。 新しいプロジェクトの場所が「場所」セクションで指定されたら、「次へ」ボタンをクリックして続行します。

.NET CoreでCSVにエクスポートする方法、図2: 新しいプロジェクトの構成 新しいプロジェクトの設定

フレームワークのドロップダウンメニューを使用して、.NET Frameworkを選択できます。 この場合、.NETの長期サポートバージョンは6.0です。次に「作成」ボタンをクリックします。

.NET CoreでCSVにエクスポートする方法、図3: .NETターゲットフレームワークの選択 .NETターゲットフレームワークの選択

その後の解決に必要なため、IronXLライブラリをインストールします。 これを達成するには、パッケージマネージャーコンソールに次のコマンドを入力します。

Install-Package IronXL.Excel

.NET CoreでCSVにエクスポートする方法、図4: IronXLパッケージをインストール IronXL パッケージのインストール

代わりに、NuGetパッケージマネージャーを使用してパッケージ「IronXL」を検索することもできます。 「参照」タブで検索ボックスに「IronXL」を入力して、IronXLライブラリを検索します。 IronXLに関連するすべてのNuGetパッケージのリストから、ダウンロードする必要なパッケージを選択します。

.NET CoreでCSVにエクスポートする方法、図5: NuGetパッケージマネージャーUIでIronXLパッケージを検索してインストール NuGetパッケージマネージャUIでのIronXLパッケージの検索とインストール

4.0 データをCSVファイルにエクスポートする

IronXLを使用すると、データテーブルをCSVファイルに作成するのが簡単かつ迅速です。 新しいCSVファイルにデータを書くのを助けます。最初のステップは、以下のコードのスクリーンショットに示されているように、IronXL名前空間を含めることです。 IronXLが導入されたら、そのクラスとメソッドをコードで使用できます。

.NET CoreでCSVにエクスポートする方法、図6: IronXL名前空間を含める IronXL名前空間を含める

IronXL can be used to create Excel files, which are subsequently converted into WorkBookオブジェクトに変換できます。 WorkBookクラスからオブジェクトになると、さまざまな方法でそれらを操作することができます。 以下のサンプルソースコードでは、DataTableをExcelワークシートに変換することで、Excelファイルが作成されます。

using IronXL;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        ExportToExcel("test.csv");
    }

    // Method to export a DataTable to an Excel sheet which is then saved as a CSV file
    public static void ExportToExcel(string filepath)
    {
        // Create a DataTable and add columns & rows
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animals", typeof(string));
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Leopard");
        table.Rows.Add("Cheetah");
        table.Rows.Add("Hyenas");

        // Create a new workbook and get the default worksheet
        var workbook = WorkBook.Create(ExcelFileFormat.XLS);
        var worksheet = workbook.DefaultWorkSheet;

        // Add table data to worksheet
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            worksheet["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Save worksheet data to a CSV file
        workbook.SaveAsCsv(filepath, ";");

        // Optionally convert workbook to a stream, useful for web applications
        var stream = workbook.ToStream();
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        ExportToExcel("test.csv");
    }

    // Method to export a DataTable to an Excel sheet which is then saved as a CSV file
    public static void ExportToExcel(string filepath)
    {
        // Create a DataTable and add columns & rows
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animals", typeof(string));
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Leopard");
        table.Rows.Add("Cheetah");
        table.Rows.Add("Hyenas");

        // Create a new workbook and get the default worksheet
        var workbook = WorkBook.Create(ExcelFileFormat.XLS);
        var worksheet = workbook.DefaultWorkSheet;

        // Add table data to worksheet
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            worksheet["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Save worksheet data to a CSV file
        workbook.SaveAsCsv(filepath, ";");

        // Optionally convert workbook to a stream, useful for web applications
        var stream = workbook.ToStream();
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		ExportToExcel("test.csv")
	End Sub

	' Method to export a DataTable to an Excel sheet which is then saved as a CSV file
	Public Shared Sub ExportToExcel(ByVal filepath As String)
		' Create a DataTable and add columns & rows
		Dim table As New DataTable()
		table.Columns.Add("DataSet_Animals", GetType(String))
		table.Rows.Add("Lion")
		table.Rows.Add("Tiger")
		table.Rows.Add("Leopard")
		table.Rows.Add("Cheetah")
		table.Rows.Add("Hyenas")

		' Create a new workbook and get the default worksheet
		Dim workbook = WorkBook.Create(ExcelFileFormat.XLS)
		Dim worksheet = workbook.DefaultWorkSheet

		' Add table data to worksheet
		Dim rowCount As Integer = 1
		For Each row As DataRow In table.Rows
			worksheet("A" & rowCount).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save worksheet data to a CSV file
		workbook.SaveAsCsv(filepath, ";")

		' Optionally convert workbook to a stream, useful for web applications
		Dim stream = workbook.ToStream()
	End Sub
End Class
$vbLabelText   $csharpLabel

上記のCSV例は、DataTableをCSVファイルにエクスポートする方法を示しています。DataTableが設立された後、つまり列見出しが作成され、最初の列が設立されたら、行を1つずつ追加します。DataTableオブジェクトに行と列を追加した後、WorkBookオブジェクトを構築します。 WorkBookオブジェクトはExcelシートにデータを追加するために使用され、その後他の場所に保存できます。 次のステップは、ワークブックオブジェクトにリンクされたWorkSheetオブジェクトを開始することです。

ワークシートに値を追加する前に、foreachループを使用してDataTableから各値を読み取ります。 SaveAsCsv関数を使用して、パラメーターとしてファイル名を使用してCSVファイルにデータを保存します。 必要に応じて、区切り文字をオプションの引数として使用できます。 その後、ライブラリはCSVファイルにデータを書くのを支援します。メモ帳を使用してMicrosoft Excelの代わりにCSVファイルを読むための別の方法があります。 また、Saveメソッドは、指定されたファイル形式に同じものを保存するために使用されます。

.NET CoreでCSVにエクスポートする方法、図7: 出力されたExcelファイルtest.csv 出力されたExcelファイルtest.csv

上記は実行されたコードサンプルの出力です。 データテーブルからのすべての情報が、それぞれ新しく作られたExcelシートに追加されています。 別の方法として、Webアプリケーションの一環としてストリームに変換し、クライアント側からダウンロードできるファイルとして返すこともできます。

データテーブルからExcelへのデータのエクスポートに関する詳細は、こちらのチュートリアルページをご覧ください。

Excelにデータをエクスポートする方法の詳細については、こちらのステップバイステップチュートリアルをご参照ください。

5.0 結論

IronXLは、最も広く使用されているExcelユーティリティの1つです。 他の外部ライブラリには依存していません。 それは自己完結しており、Microsoft Excelのインストールは不要です。 さらに、さまざまなチャンネルを通じて動作します。

プログラムで実装されたすべてのMicrosoft Excel文書関連の操作に対して、IronXLは包括的なソリューションを提供します。 数式の計算、文字列や数字の並べ替え、トリミング、追加、検索と置換、セルの結合と解除、ファイルの保存などが可能です。 スプレッドシートデータを検証するだけでなく、セルデータタイプを設定することもできます。これによりExcelデータの操作が容易になり、ファイルの読み書きが可能になります。

IronXLは無料試用ライセンスを提供しており、ユーザーはすべての素晴らしい機能を無料で試用およびテストできます。

起動時に、IronXLは$799で利用可能です。 ユーザーはまた、更新と製品サポートを受けるために1年間のサブスクリプション費用を支払うことを選択できます。 IronXLは、無制限の再配布のためのセキュリティを追加料金で提供します。 より正確な価格データを調べるには、IronXLのライセンスページをご覧ください。

よくある質問

.NET Coreを使用してCSVファイルにデータをエクスポートするにはどうすればよいですか?

IronXLを使用して.NET CoreアプリケーションでデータをCSVファイルにエクスポートできます。Visual Studioで新しい.NET Coreプロジェクトをセットアップし、NuGetを通じてIronXLをインストールし、そのWorkBookおよびWorkSheetオブジェクトを利用して、SaveAsCsvメソッドでデータをCSVファイルとして保存します。

Microsoft OfficeなしでExcelファイルの読み書きができますか?

はい、IronXLを使用すればMicrosoft OfficeやMicrosoft.Office.Interop.Excelを必要とせずにExcelファイルの読み書きができます。.NETアプリケーション内でのExcelスプレッドシート管理のためのスタンドアロンソリューションを提供します。

.NET CoreでCSVエクスポートする際にIronXLを使用する利点は何ですか?

IronXLは.NET CoreでのCSVエクスポートを簡単かつ効率的に処理します。複数のプラットフォームをサポートし、Microsoft Officeを必要とせず、数式計算、データソート、大量データセットの取り扱いなどの機能を提供しています。

.NET CoreプロジェクトにIronXLをインストールするにはどうすればよいですか?

.NET CoreプロジェクトにIronXLをインストールするには、パッケージマネージャーコンソールで'Install-Package IronXL'コマンドを使用するか、Visual StudioのNuGetパッケージマネージャーUIを使って'IronXL'を検索してインストールします。

IronXLはWindows以外のプラットフォームで使用できますか?

はい、IronXLはWindows、macOS、Linuxを含む複数のプラットフォームに対応しています。また、Xamarin、Azure、.NET Core、.NET Frameworkアプリケーションをサポートしており、さまざまな環境での使用が可能です。

IronXLでExcelの大きなデータセットをどのように扱いますか?

IronXLは、その強力なC# APIを利用することにより、Excelの大きなデータセットを効率的に処理できます。迅速なデータ操作、さまざまなExcel形式のサポート、ソートやデータの検証などの機能を提供します。

IronXLはExcelの数式計算をサポートしていますか?

はい、IronXLはExcelの数式計算をサポートしています。IronXLのAPIを使用することで、Excel内で行うのと同様にスプレッドシートデータ上で複雑な計算を行うことができます。

IronXLにはライセンスオプションがありますか?

IronXLはその機能をテストするための無料試用ライセンスを提供しており、さまざまなライセンスオプションがあり、完全な機能を利用できます。開発者に対してニーズに合ったプランを選ぶ柔軟性を提供します。

Curtis Chau
テクニカルライター

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

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