ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
以下は初心者向けチュートリアルです、どのようにやるか見てみましょうCSVファイルを読み取るにしている。C# のリストusing the
can be translated into Japanese as:
を使用して
.IronXLライブラリ。 さて、これはどのプログラミング言語でも知っておくべき基本的な事項の一つです。CSVファイルはデータを保存し、あるシステムやアプリケーションから別のシステムやアプリケーションに転送するための非常に一般的な方法です。 プロジェクトの設定からCSVファイルの効率的な解析まで、すべてをカバーします。
Visual StudioでC#コンソールプロジェクトを作成します。
NuGetパッケージマネージャーを使用してC# CSVライブラリをインストールします。
WorkBook.LoadCSV
メソッドを使用してCSVファイルを読み込みます。
ファイルからデータ値を読み取り、リストに入力する。
Visual Studio を開く: コンピューターで Visual Studio を起動します。
新しいプロジェクトを作成:「Create a new project」をクリックします。 これは、プロジェクトの種類を選択できるウィンドウを開きます。
プロジェクトタイプを選択: 「Console App」を選択(.NET Core(ドットネット コア))簡潔さのために、プロジェクトのタイプとして選択します。
プロジェクトの名前を付ける: プロジェクトの名前を CSVFileReader にしてください。
場所を選択: このプロジェクトを保存するために、デバイス上の適切な場所を選択します。
NuGet パッケージ マネージャーを開く: Visual Studio で「ツール」メニューに移動し、「NuGet パッケージ マネージャー」を選択し、「ソリューションの NuGet パッケージの管理...」を選びます。
IronXLを探す: 「参照」タブをクリックして「IronXL.Excel」を検索してください。
IronXLのインストール: 検索結果からIronXLパッケージを見つけて、それを選択し、「インストール」をクリックします。ライセンス契約に同意し、変更内容を確認することを確実にしてください。
インストールの確認: インストール後、プロジェクトの参照にIronXLが表示されていることを確認してください。
現在、CSVFileReaderプロジェクトはIronXLライブラリを使用してセットアップされ、C#でCSVファイルの読み取りと処理を開始する準備が整っています。 このセットアップは、このチュートリアルの後続セクションで行うCSV読み取りタスクの基盤を形成します。
プロジェクトのセットアップとIronXLライブラリのインストールが完了したので、CSVファイルの解析と処理に焦点を当てましょう。 CSVFileReader
プロジェクトで自動的に生成される Program.cs
ファイルで作業します。
データを読み取る前に、CSVファイルの場所を特定する必要があります。 Main
メソッドでファイルパスを格納するための変数を定義します。
string filename = "csvfile.csv"; // Replace with your actual file path
string filename = "csvfile.csv"; // Replace with your actual file path
Dim filename As String = "csvfile.csv" ' Replace with your actual file path
IronXLを使用すると、CSVファイルの読み込みが簡単になります。WorkBook.LoadCSV
メソッドを使用して、CSVファイルをWorkBook
オブジェクトに読み込みます。
var csv = WorkBook.LoadCSV(filename);
var csv = WorkBook.LoadCSV(filename);
Dim csv = WorkBook.LoadCSV(filename)
以下のようにCSVファイル内のデータ構造を表すクラスを作成します。例えば、CSVに人に関する情報が含まれている場合、「Person」クラスを次のように定義します:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Public Class Person
Public Property Name() As String
Public Property Age() As Integer
End Class
次のステップでは、CSVファイルを解析して`List
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets [0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells [0].StringValue,
Age = int.Parse(cells [1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets [0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells [0].StringValue,
Age = int.Parse(cells [1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}
Dim people As New List(Of Person)()
Dim isFirstRow As Boolean = True ' Add a flag to check for the first row
For Each row In csv.WorkSheets (0).Rows
If isFirstRow Then
isFirstRow = False ' Set the flag to false after skipping the first row
Continue For
End If
If row.IsEmpty Then
Continue For ' Skip empty rows
End If
Dim cells = row.ToArray()
Dim person As New Person() With {
.Name = cells (0).StringValue,
.Age = Integer.Parse(cells (1).StringValue)
}
people.Add(person)
Next row
この解析プロセスでは、まずList
を初期化します。isFirstRow
を使用します。 foreach
ループは、CSVファイルの各行を順に繰り返し処理します。最初の繰り返しでは、ヘッダー行が識別され、スキップされるため、データ行のみが処理されます。 次に、row.IsEmpty
を使用して、各行が空でないことを確認します。 このステップは、空行によるパースエラーを避けるために重要です。
各データ行ごとに、その行をセルの配列に変換します。(row.ToArray()もちろん、英語のテキストを教えていただけますでしょうか?)次に、このデータを使用して
Personオブジェクトを作成します。 「Age」文字列を整数に変換するなど、データ型を正しく分析および変換することは重要です。 解析された
Personオブジェクトは、その後
people` リストに追加されます。このアプローチにより、有効なデータ行のみが処理および保存されることが保証され、数値列における非数値文字列や予期しない空行といった潜在的な問題が効果的に対処されます。
CSVデータを List
に解析した後、
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
For Each person In people
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}")
Next person
以下は完全な Program.cs コードです:
using IronXL;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string [] args)
{
string filename = @"C:\Users\tayya\Downloads\sample_data.csv"; // Replace with your actual file path
var csv = WorkBook.LoadCSV(filename);
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets [0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells [0].StringValue,
Age = int.Parse(cells [1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
}
using IronXL;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string [] args)
{
string filename = @"C:\Users\tayya\Downloads\sample_data.csv"; // Replace with your actual file path
var csv = WorkBook.LoadCSV(filename);
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets [0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells [0].StringValue,
Age = int.Parse(cells [1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
}
Imports IronXL
Public Class Person
Public Property Name() As String
Public Property Age() As Integer
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim filename As String = "C:\Users\tayya\Downloads\sample_data.csv" ' Replace with your actual file path
Dim csv = WorkBook.LoadCSV(filename)
Dim people As New List(Of Person)()
Dim isFirstRow As Boolean = True ' Add a flag to check for the first row
For Each row In csv.WorkSheets (0).Rows
If isFirstRow Then
isFirstRow = False ' Set the flag to false after skipping the first row
Continue For
End If
If row.IsEmpty Then
Continue For ' Skip empty rows
End If
Dim cells = row.ToArray()
Dim person As New Person() With {
.Name = cells (0).StringValue,
.Age = Integer.Parse(cells (1).StringValue)
}
people.Add(person)
Next row
For Each person In people
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}")
Next person
End Sub
End Class
ファイルを実行すると、コンソールにリストのデータが表示されます。
CSVファイル内の様々なデータ型を取り扱う際には、各データ列の特定の型に合わせてパースロジックを調整することが重要です。 Person
クラスの例では、Name
は文字列であり、StringValue
を使用して直接割り当てることができますが、Age
のような数値フィールドは、Int32.Parse
または Convert.ToInt32
を使用して文字列から整数に変換する必要があります。 これを行うことは、型の不一致エラーを回避するために不可欠です。
より複雑なデータ型、例えば日付の場合、文字列で表現された日付をDateTime
オブジェクトに変換するためにDateTime.Parse
を使用してください。 CSVファイルで使用されている日付形式に注意し、コードで期待される形式と一致していることを確認することが重要です。 日付形式の不一致は、解析エラーやデータの誤解を引き起こす可能性があります。
CSVファイルのデータをIronXLを使用してC#で読み取り、解析し、表示する方法を学びました。 このアプローチは、さまざまな種類のデータ構造やファイル形式に対して使用することができます。 したがって、これはC#を主な言語として選択するすべての開発者にとって、非常に有用なスキルを表しています。
IronXLは、無料試用ユーザーがその機能を体験するために。 試用期間が終了した後、IronXL のライセンスは $liteLicense から始まります。
例外やエッジケースに対処することで、異なるデータ型を管理し、大きなファイルを扱う際に、より堅牢なコードを記述する必要があります。 IronXLのより多くの機能を試し、探求して、C#でのデータ処理を強化し続けてください。 コーディングを楽しんでください!
9つの .NET API製品 オフィス文書用