ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
初心者向けのCSVインポートチュートリアルへようこそ(カンマ区切り値)ファイルを...データテーブルC# を使用してIronXL. このガイドでは、C#に初めて触れる方でも、このプロセスを簡単に進められるように、わかりやすいアプローチをご紹介します。 環境の設定からソースコードの記述まで、すべてのステップをカバーします。 このチュートリアルの終わりまでに、CSVデータをデータテーブルに変換する方法、データテーブルの列を管理する方法、および C# で var リーダーと接続文字列を使用して CSV ドキュメントのさまざまな側面を処理する方法について明確に理解できるようになります。
始める前に、以下をご確認ください:
CSVファイル(カンマ区切り値ファイル)は、特定の構造化を使用して表形式データを整理するプレーンテキストファイルの一種です。 CSVはシンプルでコンパクトなため、さまざまなプラットフォームで動作するため、データ交換の一般的なフォーマットです。 CSVファイルでは、データはカンマで区切られており、各新しい行は新しい行を意味し、列ヘッダーは通常最初の行に存在します。
DataTableはC#のADO.NETライブラリの一部であり、メモリ内データの単一のテーブルを表しています。 行と列で構成されており、各列は異なるデータ型を持つことができます。 DataTablesは非常に柔軟で、構造化された形式でデータを表現できるため、CSVファイルデータの取り扱いに理想的です。
Visual Studioを開きます。
ファイル > 新規 > プロジェクト を選択します。
IronXLは、強力なライブラリであり、ユーザーがExcelを操作するC#でCSVファイル 使用するには、NuGetパッケージマネージャーを介してインストールする必要があります。 Visual Studio で:
ツール > NuGet パッケージ マネージャー > ソリューションの NuGet パッケージの管理 に移動します。
IronXL.Excelを検索する。
using IronXL;
using System.Data;
using IronXL;
using System.Data;
Imports IronXL
Imports System.Data
これらの using ステートメントには、私たちのタスクに必要な名前空間が含まれています。
クラス CsvToDataTable を定義し、静的メソッド ImportCsvToDataTable を実装してください。 このメソッドは DataTable へのCSVファイルの変換を担当します。
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Code snippet to import CSV will be placed here
}
}
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Code snippet to import CSV will be placed here
}
}
Public Class CsvToDataTable
Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable
' Code snippet to import CSV will be placed here
End Function
End Class
ImportCsvToDataTable メソッド内で、まずCSVファイルを読み込みます。IronXLはこれを行うための簡単な方法を提供します。
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);
' Load the CSV file
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath)
WorkBook.LoadCSVは、CSVファイルを読み込むためのIronXLのメソッドです。 ここで、filePath はあなたの CSV ファイルへのパスです。
読み込んだCSVデータをDataTableに変換します。 このステップは主要なステップであり、データをC#アプリケーション内で簡単に操作および表示できる形式に変換します。
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable dt
DataTable dataTable = sheet.ToDataTable();
return dataTable;
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable dt
DataTable dataTable = sheet.ToDataTable();
return dataTable;
' Get the first worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Convert CSV worksheet to DataTable dt
Dim dataTable As DataTable = sheet.ToDataTable()
Return dataTable
このスニペットは、CSVデータをDataTableに変換します。 DefaultWorkSheet は、ワークブックから最初のワークシートを取得します。CSVファイルの場合、これはCSVデータ全体に相当します。ToDataTable メソッドは、最初の行に列の文字列ヘッダー行がある場合、それも含めて、CSVデータを効率的に DataTable 構造にマップするIronXLの強力な機能です。
以下の内容を日本語に翻訳してください:
次に、アプリケーションで ImportCsvToDataTable メソッドを使用します。 例えば、アプリケーションの起動時やユーザーがCSVファイルをアップロードした際にこのメソッドを呼び出すとよいでしょう。
// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);
// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);
' Usage
Dim csvFilePath As String = "csvfile.csv"
Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath)
このコードスニペットは、ImportCsvToDataTableメソッドを呼び出す方法を示しています。 "csvfile.csv" を実際のCSVファイルのファイルパスに置き換えます。
DataTableを取得したら、ユーザーインターフェースにデータを表示したり、フィルタリングを行ったり、データを処理するなどの様々な操作を実行することができます。 以下はいくつかの例です:
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
For Each row As DataRow In dataTable.Rows
For Each item In row.ItemArray
Console.Write($"{item} ")
Next item
Console.WriteLine()
Next row
このコードは DataTable の各行および列を反復処理し、コンソールにデータを出力します。
LINQを使用してDataTableのデータをフィルタリングできます。 例えば、特定の列が条件を満たす行を選択したい場合:
var filteredRows = dataTable.AsEnumerable()
.Where(row => row.Field<string>("ColumnName") == "SomeValue");
var filteredRows = dataTable.AsEnumerable()
.Where(row => row.Field<string>("ColumnName") == "SomeValue");
Dim filteredRows = dataTable.AsEnumerable().Where(Function(row) row.Field(Of String)("ColumnName") = "SomeValue")
"ColumnName"と"SomeValue"を、フィルタリングする列名と値に置き換えてください。
ここにあなたのプロジェクトで使用できる完全なソースコードがあります:
using IronXL;
using System;
using System.Data;
using System.IO;
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Check if the file exists
if (!File.Exists(filePath))
{
throw new FileNotFoundException($"The file at {filePath} was not found.");
}
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert the worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;
}
}
class Program
{
static void Main(string [] args)
{
// Usage
try
{
string strfilepath = "sample_data.csv"; // CSV file path
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(strfilepath);
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
using IronXL;
using System;
using System.Data;
using System.IO;
public class CsvToDataTable
{
public static DataTable ImportCsvToDataTable(string filePath)
{
// Check if the file exists
if (!File.Exists(filePath))
{
throw new FileNotFoundException($"The file at {filePath} was not found.");
}
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert the worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;
}
}
class Program
{
static void Main(string [] args)
{
// Usage
try
{
string strfilepath = "sample_data.csv"; // CSV file path
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(strfilepath);
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
Imports IronXL
Imports System
Imports System.Data
Imports System.IO
Public Class CsvToDataTable
Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable
' Check if the file exists
If Not File.Exists(filePath) Then
Throw New FileNotFoundException($"The file at {filePath} was not found.")
End If
' Load the CSV file
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath, listDelimiter:= ";")
' Get the first worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Convert the worksheet to DataTable
Dim dataTable As DataTable = sheet.ToDataTable()
Return dataTable
End Function
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Usage
Try
Dim strfilepath As String = "sample_data.csv" ' CSV file path
Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(strfilepath)
For Each row As DataRow In dataTable.Rows
For Each item In row.ItemArray
Console.Write($"{item} ")
Next item
Console.WriteLine()
Next row
Catch ex As Exception
Console.WriteLine($"An error occurred: {ex.Message}")
End Try
End Sub
End Class
以下のコードを Program.cs ファイルに使用できます。 運用環境で作業している場合は、IronXL のライセンスを追加することを忘れないでください。
コードを実行すると、CSVファイルが読み込まれ、そのデータがDataTableにインポートされます。 その後、コンソールにデータテーブルの列の内容が表示されます。 データが正しくDataTableにインポートされていることを確認するのに役立ちます。
現実のシナリオでは、CSVファイルの形式や構造が大きく異なることがあります。 これらのバリエーションを処理することは、アプリケーションが堅牢で多用途であることを確保するために重要です。IronXLを使用してCSVデータをDataTableにインポートする際のさまざまなシナリオの管理方法について詳しく説明しましょう。
CSVファイルにおけるデリミタのデフォルト値はコンマです。 しかし、CSVファイルは必ずしも値を区切るためにコンマを使用しているとは限りません。 セミコロン、タブ、その他の文字が区切り文字として使用されることがあります。 IronXL でこれに対処するには:
カスタム区切り文字の指定: CSVファイルを読み込む前に、ファイルの区切り文字を指定できます。 例として、あなたのファイルがセミコロンを使用している場合(;)以下のように設定できます:
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath, listDelimiter:= ";")
動的デリミタ検出: 代わりに、デリミタを動的に検出する関数を作成することもできます。 これは、ファイルの最初の数行を分析し、一番頻繁に出現する特殊文字を決定することで実行できます。
大規模なCSVファイルを扱う際には、メモリ使用量とパフォーマンスを考慮することが重要です。 IronXLは、ファイル全体を一度にメモリに読み込むことなく、大きなファイルを効率的に処理する方法を提供します。 ファイルをチャンクとして読み込むか、IronXLが提供するストリーミングAPIを活用してメモリ使用量を効率的に管理することができます。
C#でIronXLを使用してCSVデータをDataTableにインポートするのは簡単です。 それはアプリケーションのデータ操作機能を強化し、CSVファイルを効率的に処理することができます。 このチュートリアルで説明されている手順に従うことで、初心者でも容易にこの機能を自身のC#プロジェクトに統合することができます。
IronXLは、ユーザーがその機能を試すための無料トライアルを提供しています。 より高度な機能とサポートを求める方には、ライセンスオプションは $Lite License
から始まります。
9つの .NET API製品 オフィス文書用