C#でデータセットをCSVに変換する方法
以下の記事では、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が推奨されますが、お好みに応じて任意のバージョンを使用できます。 新しいプロジェクトを作成する手順は、バージョンによって異なる場合がありますので注意してください。
Visual Studioの開始ウィンドウ
"新しいプロジェクトを作成"をクリックしてください。 下図のように新しいウィンドウが表示されます。
Visual Studioで新しいプロジェクトを作成
リストからお好みのプロジェクトテンプレートを選択します。次へ ボタンをクリックすると、下記のように新しいウィンドウが表示されます。
新しく作成したプロジェクトを設定
プロジェクトに名前を付け、その場所を選択して次へボタンを押します。 下図のように新しいウィンドウが表示されます。
.NET Frameworkのバージョンを選択
ターゲットの.NET Frameworkを選択します。 IronXLはすべての.NET Frameworkをサポートしているため、自分のニーズに合った.NET Frameworkを選択できます。 このチュートリアルでは.NET 7を使用します。作成ボタンをクリックすると、下記のように新しいプロジェクトが作成されます。
Visual Studioの新しいコンソールアプリケーション
では、このアプリケーションでIronXLを利用するためにNuGetパッケージをインストールします。
IronXLをインストール
NuGetパッケージマネージャコンソールを開き、次のコマンドを入力します。
Install-Package IronXL.Excel
下記のようにNuGetパッケージがインストールされ、使用準備が整います。
IronXLパッケージとその依存関係のインストール
それでは、C#でデータセットをCSVファイルに変換するためのコードを書いてみましょう。
この例では、SQLサーバーデータベースからデータを取得します。 SQL DBからデータセットを取得した後、その入力データを使用してCSVファイルを作成します。
データテーブルを作成
最初のステップはSQLからデータを取得することですが、お好みのデータソースを使用できます。
このチュートリアルでは、以下のデータを使用します。
サンプルデータで新しいデータベースを作成
サンプルデータを作成するための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");
}
}コードの説明
メソッド
GetData()はSQLサーバーデータベースからデータを取得し、それをDataTableとして返します。Mainメソッドでは、IronXLを使用してWorkBookを作成し、データをWorkSheetに取り込みます。foreachループでDataTableの行を反復し、各値をWorkSheetの新しい行に挿入します。- 最後に、IronXLの
SaveAsCsv関数を使用してCSVファイルが保存されます。
出力
このプログラムによって生成されたCSVファイルは以下の通りです:
CSV出力ファイル
CSVファイルが正しく生成され、提供された入力と一致していることが明らかです。
まとめ
この記事では、データセットからC#でCSVファイルを作成する方法を示しました。 このライブラリは、C#を使用してCSVファイルを読むこともできます。 SQL Serverデータベースからデータセットが人口され、3ステップでCSVファイルを作成します:
- SQLサーバーからデータを取得します。
- データをデータテーブルに取り込みます。
- そのデータテーブルからCSVファイルを作成します。
上記の通り、IronXLを使用すると.NET 7でCSVファイルを作成するのは非常に簡単です。 プログラムのパフォーマンスは.NET 7とIronXLで記述されているため非常に優れています。 IronXLは、Excelファイルの作成、読み取り、および操作など、他にも便利な機能を提供します。 詳細については、公式ドキュメントを参照してください。
さらに、IronPDFは、開発者にPDFドキュメントを画像にレンダリングする方法やPDFからテキストとコンテンツを抽出する方法を提供します。 さらに、IronPDFは、PDFでチャートをレンダリングする、バーコードを追加する、パスワードでセキュリティを強化するなどの機能もプログラム的に提供します。
IronXLの無料版は開発目的で使用されます。 アプリケーションを本番環境にデプロイするには、無料トライアルバージョンまたは商用ライセンスを取得してください。 IronXLは5つのライブラリからなるIron Suiteの一部です。
- 本日取り上げたIronXL。
- PDFファイルの生成、読み取りおよび操作のためのIronPDF
- 画像からテキストを抽出するIronOCR
- IronBarcodeはバーコードの読み取りと生成に使用されます
- ウェブサイトから構造化データを抽出する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を使用する主な利点は何ですか?
IronXLの主な利点は、Microsoft Officeなしでスプレッドシートを扱えることや、すべての.NETバージョンをサポートし、データをCSVファイルに効率的に変換できることです。
Iron Suiteとは何で、その内容は何ですか?
Iron Suiteは、IronXL、IronPDF、IronOCR、IronBarcode、IronWebScraperを含むライブラリのコレクションです。








