IRONXLの使用

C#でデータセットをCSVに変換する方法

リーガン・パン
リーガン・パン
2023年4月18日
更新済み 2024年2月20日
共有:

以下の記事では、C#のデータセットをCSVファイルに変換する方法を示します。

IronXLは、CSV形式やExcelファイルでスプレッドシートを扱うための優れたソリューションです。 IronXLは開発に無料で、使いやすく、あらゆる種類のスプレッドシートと連携するための広範な機能を提供します。 それは安全であり、高性能を提供します。 続行する前に、IronXLについて簡単に紹介しましょう。

IronXL

IronXLは、C#開発者が.NETアプリケーションやウェブサイトでExcel(およびその他のスプレッドシートファイル)を読み取り、生成し、編集できるようにするIron Softwareライブラリです。

IronXLは、C#および.NETでExcelおよびその他のスプレッドシートファイルを操作するための迅速かつ簡単な方法です。 IronXL は、Office Excel Interop を必要とせずに、.NET Framework、.NET Core、および Azure と良好に動作します。 IronXLはMicrosoft Officeをインストールする必要がなく、そのような依存関係も含まれていません。

データセット用のCSVファイルを作成するコードを書いてみましょう。

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

Visual Studio IDEを開きます。最新バージョンのVisual Studioが推奨されますが、お好みに合わせてどのバージョンでも使用できます。 バージョンによって新しいプロジェクトを作成する手順が異なる場合があることにご留意ください。

C#でデータセットをCSVに変換する方法、図1: Visual Studioのスタートウィンドウ

Visual Studio の開始ウィンドウ

「Create a New Project」をクリックしてください。 以下のように新しいウィンドウが表示されます。

C#でデータセットをCSVに変換する方法、図2: Visual Studioで新しいプロジェクトを作成

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

リストからお好みのプロジェクトテンプレートを選択してください。次へボタンをクリックすると、下記のように新しいウィンドウが表示されます。

C#でデータセットをCSVに変換する方法、図3: 新しく作成したプロジェクトを設定する

新しく作成したプロジェクトを構成する

プロジェクトに名前を付け、場所を選択し、次へ ボタンを押します。 以下のように新しいウィンドウが表示されます。

C#でデータセットをCSVに変換する方法、図4: .NET Frameworkのバージョンを選択

.NET Framework のバージョンを選択

ターゲットの.NET Frameworkを選択してください。 IronXLはすべての.NET Frameworkをサポートしているため、ニーズに合った任意の.NET Frameworkを選択できます。 このチュートリアルでは、.NET 7を使用します。作成ボタンをクリックすると、下に示すように新しいプロジェクトが作成されます。

C#でデータセットをCSVに変換する方法、図 5: Visual Studioの新しいコンソールアプリケーション

Visual Studioで新しいコンソールアプリケーション

では、このアプリケーションで使用するためにIronXL NuGetパッケージをインストールしてください。

IronXLをインストール

NuGetパッケージマネージャーコンソールを開き、以下のコマンドを入力します。

Install-Package IronXL.Excel

NuGet パッケージ がインストールされ、以下のように使用できるようになります。

C#でデータセットをCSVに変換する方法、図6: IronXLパッケージとそのパッケージ依存関係のインストール

IronXLパッケージとそのパッケージ依存関係のインストール

さて、C#でデータセットをCSVファイルに変換するコードを書いてみましょう。

この例では、SQLサーバーデータベースからデータを取得します。 SQLデータベースからデータセットを取得した後、この入力データを使用してCSVファイルを作成します。

データテーブルの作成

最初のステップはSQLからデータを取得することですが、好みのデータソースを使用することもできます。

このチュートリアルでは、次のデータを使用します:

C#でデータセットをCSVに変換する方法、図7: サンプルデータで新しいデータベースを作成する

サンプルデータで新しいデータベースを作成する

以下はサンプルデータを作成するためのSQLスクリプトです:

USE Test_DB

Create Table STUDENT_DATA
(
    REG_NUM INT PRIMARY KEY,
    FIRST_NAME VARCHAR(30),
    LAST_NAME VARCHAR(30),
    CLASS VARCHAR(5),
    CONTACT_NUM VARCHAR(15)
);

INSERT INTO STUDENT_DATA
VALUES
(123, 'JHON', 'SMITH', '2', '(223) 444-1234'),
(124, 'THOMAS', 'CHARLES', '2', '(332) 555-1235'),
(125, 'WILLIAM', 'RICHARD', '2', '(432) 666-1236'),
(126, 'JAMES', 'BOND', '2', '(543) 777-1237'),
(127, 'CRISTOPHER', 'MICHAL', '2', '(555) 999-1238'),
(128, 'DONALD', 'MARK', '2', '(777) 888-1239');

以下のC#コードはデータテーブルをCSVファイルにエクスポートするために使用されます。

public static DataTable getData()
{
    string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
    string query = "select * from STUDENT_DATA";
    try
    {
        SqlConnection conn = new SqlConnection(connString);
        SqlCommand cmd = new SqlCommand(query, conn);
        conn.Open();
        // create data adapter
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        // this will query your database and return the result to your datatable
        DataTable dt = new DataTable();
        da.Fill(dt);
        da.Dispose();
        return dt;
    } catch(Exception)
    {
        throw;
    }
}

static void Main(string [] args)
{
    DataTable table = getData();
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    wb.Metadata.Author = "JOHN";
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        ws ["B" + (rowCount)].Value = row [1].ToString();
        ws ["C" + (rowCount)].Value = row [2].ToString();
        ws ["D" + (rowCount)].Value = row [3].ToString();
        ws ["E" + (rowCount)].Value = row [4].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv"); // 
}
public static DataTable getData()
{
    string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
    string query = "select * from STUDENT_DATA";
    try
    {
        SqlConnection conn = new SqlConnection(connString);
        SqlCommand cmd = new SqlCommand(query, conn);
        conn.Open();
        // create data adapter
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        // this will query your database and return the result to your datatable
        DataTable dt = new DataTable();
        da.Fill(dt);
        da.Dispose();
        return dt;
    } catch(Exception)
    {
        throw;
    }
}

static void Main(string [] args)
{
    DataTable table = getData();
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    wb.Metadata.Author = "JOHN";
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        ws ["B" + (rowCount)].Value = row [1].ToString();
        ws ["C" + (rowCount)].Value = row [2].ToString();
        ws ["D" + (rowCount)].Value = row [3].ToString();
        ws ["E" + (rowCount)].Value = row [4].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv"); // 
}
Public Shared Function getData() As DataTable
	Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
	Dim query As String = "select * from STUDENT_DATA"
	Try
		Dim conn As New SqlConnection(connString)
		Dim cmd As New SqlCommand(query, conn)
		conn.Open()
		' create data adapter
		Dim da As New SqlDataAdapter(cmd)
		' this will query your database and return the result to your datatable
		Dim dt As New DataTable()
		da.Fill(dt)
		da.Dispose()
		Return dt
	Catch e1 As Exception
		Throw
	End Try
End Function

Shared Sub Main(ByVal args() As String)
	Dim table As DataTable = getData()
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	wb.Metadata.Author = "JOHN"
	Dim ws As WorkSheet = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		ws ("A" & (rowCount)).Value = row (0).ToString()
		ws ("B" & (rowCount)).Value = row (1).ToString()
		ws ("C" & (rowCount)).Value = row (2).ToString()
		ws ("D" & (rowCount)).Value = row (3).ToString()
		ws ("E" & (rowCount)).Value = row (4).ToString()
		rowCount += 1
	Next row
	wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
End Sub
$vbLabelText   $csharpLabel

コードの説明

メソッドgetData()は、先述の通り、SQL Serverデータベースからデータを取得します。

メイン関数では、IronXLを使用してWorkBookを作成し、その後WorkSheetを作成します。

forループでは、データが指定されたワークシートの行に埋め込まれます。

その後、このファイルをIronXLが提供するSaveAsCsv関数を使用してCSVとして保存します。

出力

このプログラムによって生成されたCSVファイルは次のとおりです:

C#でデータセットをCSVに変換する方法、図8: CSV出力ファイル

CSV出力ファイル

提供された入力に基づいて生成されたCSVファイルが適切に作成されていることは明らかです。

サマリー

この記事では、データセットからC#でCSVファイルを作成する方法を示しました。 そのライブラリは、C#を使用してCSVファイルを読み取ることもできます。 SQL Serverデータベースからのデータセットを3つのステップでCSVファイルにして作成します:

  1. SQL Serverからデータを取得します。

  2. データテーブルにデータを入力します。

  3. そのデータテーブルからCSVファイルを作成します。

    上記の例のように、.NET 7でIronXLを使用してCSVファイルを作成することは非常に簡単です。 プログラムの性能は、.NET 7でIronXLを使用して書かれているため、非常に優れています。 IronXLは、Excelファイルの作成、読み取り、操作といった他の便利な機能を提供します。 詳細については、公式ドキュメントをご覧ください。

    さらに、IronPDF は開発者に対して PDF ドキュメントを画像にレンダリングする および PDF からテキストとコンテンツを抽出する 方法を提供します。 さらに、IronPDFはPDF内でチャートをレンダリングし、バーコードを追加し、プログラムでパスワードでセキュリティを強化することもできます。

    IronXLの無料バージョンは開発目的で使用されます。 アプリケーションを本番環境にデプロイするには、無料トライアル版または商用ライセンスを取得してください。 IronXL は Iron Suite の一部で、これは五つのライブラリで構成されています。

  4. IronXL、本日探求されています。

  5. IronPDF は、PDFファイルの生成、読み取り、操作を行うためのツールです。

  6. IronOCR は、画像からテキストを抽出するためのツールです

  7. IronBarcode でバーコードの読み取りと生成

  8. IronWebScraperは、Webサイトから構造データを抽出するためのツールです。

    これらすべての製品は、一緒に購入すると2つの価格で手に入れることができます。

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