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

{"13":"C#\u3092\u4f7f\u7528\u3057\u3066DataSet\u3092CSV\u306b\u5909\u63db\u3059\u308b\u65b9\u6cd5<\/S>"}

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

IronXLは、CSV形式やExcelファイルでスプレッドシートを操作するのに適したソリューションです。 IronXLは開発用に無料で、使いやすく、あらゆる種類のスプレッドシートを操作するための広範な機能を提供します。 安全で高性能です。 先に進む前に、IronXLの簡単な紹介をしましょう。

IronXL

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

IronXLは、C#および.NETでExcelや他のスプレッドシートファイルを操作するための迅速で簡単な方法です。 IronXLは.NET Framework、.NET Core、Azureとよく連携し、Office Excel Interopを必要としません。また、IronXLはMicrosoft Officeをインストールする必要もなく、その他の依存関係を含める必要もありません。

データセット用のCSVファイルを作成し、そのコードを書き始めましょう。

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

Visual Studio IDEを開きます。最新バージョンのVisual Studioが推奨されますが、お好みに応じて任意のバージョンを使用できます。 新しいプロジェクトを作成する手順は、バージョンによって異なる場合がありますので注意してください。

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

「新しいプロジェクトを作成」をクリックしてください。 下図のように新しいウィンドウが表示されます。

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 DBからデータセットを取得した後、その入力データを使用して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ファイルにエクスポートするために使用されます。

using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;

class Program
{
    // Method to retrieve data from SQL database and return as DataTable
    public static DataTable GetData()
    {
        // Define connection string (modify accordingly for your local server)
        string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
        string query = "SELECT * FROM STUDENT_DATA";

        try
        {
            // Create SQL connection
            using SqlConnection conn = new SqlConnection(connString);
            // Create SQL command
            SqlCommand cmd = new SqlCommand(query, conn);
            conn.Open();
            // Create data adapter
            using SqlDataAdapter da = new SqlDataAdapter(cmd);
            // Query the database and return the result to a data table
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
            throw;
        }
    }

    static void Main(string[] args)
    {
        // Retrieve data and store it in a DataTable
        DataTable table = GetData();

        // Create a new Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        wb.Metadata.Author = "JOHN";

        // Use the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable
        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++;
        }

        // Save the workbook as a CSV file
        wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
    }
}
using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;

class Program
{
    // Method to retrieve data from SQL database and return as DataTable
    public static DataTable GetData()
    {
        // Define connection string (modify accordingly for your local server)
        string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
        string query = "SELECT * FROM STUDENT_DATA";

        try
        {
            // Create SQL connection
            using SqlConnection conn = new SqlConnection(connString);
            // Create SQL command
            SqlCommand cmd = new SqlCommand(query, conn);
            conn.Open();
            // Create data adapter
            using SqlDataAdapter da = new SqlDataAdapter(cmd);
            // Query the database and return the result to a data table
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
            throw;
        }
    }

    static void Main(string[] args)
    {
        // Retrieve data and store it in a DataTable
        DataTable table = GetData();

        // Create a new Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        wb.Metadata.Author = "JOHN";

        // Use the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable
        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++;
        }

        // Save the workbook as a CSV file
        wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
    }
}
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports IronXL

Friend Class Program
	' Method to retrieve data from SQL database and return as DataTable
	Public Shared Function GetData() As DataTable
		' Define connection string (modify accordingly for your local server)
		Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
		Dim query As String = "SELECT * FROM STUDENT_DATA"

		Try
			' Create SQL connection
			Using conn As New SqlConnection(connString)
				' Create SQL command
				Dim cmd As New SqlCommand(query, conn)
				conn.Open()
				' Create data adapter
				Using da As New SqlDataAdapter(cmd)
					' Query the database and return the result to a data table
					Dim dt As New DataTable()
					da.Fill(dt)
					Return dt
				End Using
			End Using
		Catch ex As Exception
			Console.WriteLine($"An error occurred: {ex.Message}")
			Throw
		End Try
	End Function

	Shared Sub Main(ByVal args() As String)
		' Retrieve data and store it in a DataTable
		Dim table As DataTable = GetData()

		' Create a new Workbook
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
		wb.Metadata.Author = "JOHN"

		' Use the default worksheet
		Dim ws As WorkSheet = wb.DefaultWorkSheet
		Dim rowCount As Integer = 1

		' Populate the worksheet with data from the DataTable
		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

		' Save the workbook as a CSV file
		wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
	End Sub
End Class
$vbLabelText   $csharpLabel

コードの説明

  • メソッドGetData()はSQLサーバーデータベースからデータを取得し、それをDataTableとして返します。

  • Mainメソッドでは、IronXLを使用してWorkBookを作成し、データをWorkSheetに取り込みます。

  • foreachループでDataTableの行を反復し、各値をWorkSheetの新しい行に挿入します。

  • 最後に、IronXLのSaveAsCsv関数を使用してCSVファイルが保存されます。

出力

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

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

CSVファイルが正しく生成され、提供された入力と一致していることが明らかです。

まとめ

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

  1. SQLサーバーからデータを取得します。
  2. データをデータテーブルに取り込みます。
  3. そのデータテーブルからCSVファイルを作成します。

上記の通り、IronXLを使用すると.NET 7でCSVファイルを作成するのは非常に簡単です。 プログラムのパフォーマンスは.NET 7とIronXLで記述されているため非常に優れています。 IronXLは、Excelファイルの作成、読み取り、および操作など、他にも便利な機能を提供します。 詳細については、公式ドキュメントを参照してください。

Additionally, IronPDF offers developers methods to render PDF documents into images and extract text and content from a PDF. Additionally, IronPDF is also capable of rendering charts in PDFs, adding barcodes, enhancing security with passwords programmatically.

開発目的のためにIronXLの無料版が使用されます。 To deploy an application in production, please obtain a free trial version or a commercial license. IronXLは5つのライブラリからなるIron Suiteの一部です。

  1. 本日取り上げたIronXL
  2. PDFファイルの生成、読み取りおよび操作のためのIronPDF
  3. 画像からテキストを抽出するIronOCR
  4. バーコードの読み取りと生成のためのIronBarcode
  5. ウェブサイトから構造化データを抽出するIronWebScraper

これらすべての製品をセットで購入すると2つの価格で入手できます。

よくある質問

C#データセットをCSVファイルに変換するにはどうすればいいですか?

IronXLを使用してC#のデータセットをCSVファイルに変換できます。まず、SQL Serverデータベースなどのソースからデータを取得し、それをデータテーブルに流し込みます。次に、IronXLを使用してデータテーブルをCSVファイルにエクスポートします。

私が.NETでExcelファイルを操作する際、Microsoft Officeが必要ですか?

いいえ、IronXLを使用する際は、.NETでExcelファイルを操作するためにMicrosoft Officeは必要ありません。IronXLはOfficeやInteropの依存関係なしで動作します。

Spreadsheetを操作するためにIronXLをインストールする最良の方法は何ですか?

IronXLをスプレッドシート処理のためにインストールする最良の方法は、Visual StudioのNuGetパッケージマネージャコンソールを通して行うことです。コマンド:Install-Package IronXL.Excelを使用します。

スプレッドシート作業時にIronXLがどのように生産性を向上させるのか?

IronXLは、開発者が追加のソフトウェアインストールや依存関係なしに、.NETアプリケーション内でExcelおよびCSVファイルを迅速かつ簡単に読み取り、生成、および編集することを可能にすることで、生産性を向上させます。

IronXLを使用して任意のデータソースからCSVファイルを生成できますか?

はい、IronXLを使用して任意のデータソースからCSVファイルを生成できます。記事は、SQL Serverデータベースを使用してデータテーブルを流し込み、その後IronXLを使用してCSVにエクスポートする方法を示しています。

IronXLは最新の.NETバージョンに対応していますか?

はい、IronXLは.NET 7を含む最新の.NETバージョンに対応しており、これらのプラットフォームでのパフォーマンスの向上を提供します。

スプレッドシートタスクのためにIronXLを使用する主な利点は何ですか?

{"28":"IronXL\u3092\u4f7f\u7528\u3059\u308b\u4e3b\u306a\u5229\u70b9\u306b\u306f\u3001Microsoft Office\u306a\u3057\u3067\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3092\u6271\u3048\u308b\u80fd\u529b\u3001\u3059\u3079\u3066\u306e.NET\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b\u3053\u3068\u3001\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092CSV\u30d5\u30a1\u30a4\u30eb\u306b\u52b9\u7387\u7684\u306b\u5909\u63db\u3059\u308b\u7c21\u5358\u3055\u304c\u542b\u307e\u308c\u307e\u3059\u3002<\/S>"}

Iron Suiteとは何で、その内容は何ですか?

Iron Suiteは、IronXL for Excelファイル、IronPDF for PDFs、IronOCR forテキスト抽出 from画像、IronBarcode forバーコード、IronWebScraper forウェブデータ抽出を含むライブラリのコレクションです。

Curtis Chau
テクニカルライター

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

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