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

C# で CSV をインポートする | ASP.NET Coreチュートリアル | IronXL

ASP.NET Coreで C# から CSV ファイルをインポートする場合、ファイル ストリームを読み込み、区切り文字で区切られた行を解析し、各レコードを型付きオブジェクトにマッピングする必要があります。これらはすべて、データを使って何らかの有用な処理を行う前に実行する必要がある処理です。 IronXLは、CSV、XLSX、TSVファイルすべてに同様に機能する単一のAPIを通じてすべてのステップを処理するため、文字列分割の特殊なケースに時間を費やすのではなく、アプリケーションロジックの開発に集中できます。

無料トライアルを開始して、これらのコード例を自分の環境で試してみましょう。

.NETプロジェクトにIronXLをインストールするにはどうすればよいですか?

解析コードを記述する前に、プロジェクトにIronXLを追加してください。 Visual Studio のパッケージ マネージャー コンソール、またはプロジェクト ディレクトリのターミナルを開き、次のいずれかのコマンドを実行します。

Install-Package IronXL.Excel

このパッケージは、.NET 10、 .NET 6以降、 .NET Framework 4.6.2以降、および.NET Standard 2.0を対象としているため、あらゆる種類の最新プロジェクトに対応できます。 サーバーにMicrosoft Officeをインストールする必要はありません。 パッケージが復元された後、ライブラリを呼び出すファイルの上部にusing IronXL;を追加してください。

グローバルなツールのインストールやCI/CDパイプラインの設定など、詳細なセットアップオプションについては、IronXLのインストールガイドをご覧ください。

ASP.NET CoreでCSVファイルをインポートするにはどうすればよいですか?

ASP.NET CoreでCSVファイルをインポートするには、サーバーからファイルストリームを読み込み、各行を解析し、値をモデルクラスにマッピングする必要があります。 一部の開発者は手動のStreamReader実装やサードパーティのパッケージを利用しますが、IronXLは追加の設定なしでCSVファイルとExcel形式を扱う単一のメソッドを提供します。

次のコードは、IronXLのWorkBook.LoadCSVメソッドを使用してCSVファイルを読み込む方法を示しています。

using IronXL;

// Load the CSV file directly using the full file path
var csv = WorkBook.LoadCSV("products.csv");
WorkSheet worksheet = csv.DefaultWorkSheet;

// Access CSV data by iterating through rows
foreach (var row in worksheet.Rows)
{
    string productName = row.Columns[1].StringValue;
    decimal price = row.Columns[2].DecimalValue;
    Console.WriteLine($"Product: {productName}, Price: {price}");
}
using IronXL;

// Load the CSV file directly using the full file path
var csv = WorkBook.LoadCSV("products.csv");
WorkSheet worksheet = csv.DefaultWorkSheet;

// Access CSV data by iterating through rows
foreach (var row in worksheet.Rows)
{
    string productName = row.Columns[1].StringValue;
    decimal price = row.Columns[2].DecimalValue;
    Console.WriteLine($"Product: {productName}, Price: {price}");
}
Imports IronXL

' Load the CSV file directly using the full file path
Dim csv = WorkBook.LoadCSV("products.csv")
Dim worksheet As WorkSheet = csv.DefaultWorkSheet

' Access CSV data by iterating through rows
For Each row In worksheet.Rows
    Dim productName As String = row.Columns(1).StringValue
    Dim price As Decimal = row.Columns(2).DecimalValue
    Console.WriteLine($"Product: {productName}, Price: {price}")
Next
$vbLabelText   $csharpLabel

WorkBook.LoadCSV メソッドの理解

WorkBook.LoadCSVメソッドはCSVファイルを読み取り、各行を行として、各区切り値をセルとしてワークシートを作成します。 IronXLは区切り文字(カンマ、セミコロン、タブ)を自動的に検出し、値の中にカンマが含まれる引用符付きフィールドを処理します。 標準的なCSVファイルの場合、区切り文字を手動で設定する必要はありません。

decimal.Parseによる解析を避けることができます。 セルが空の場合、または認識されない値が含まれている場合、これらのアクセサーは例外をスローするのではなく、型のデフォルト値を返します。これにより、一括インポート操作中に未処理のエラーが発生するのを防ぎます。

このアプローチにより、カスタム実装で必要となるエラーが発生しやすい手動の文字列解析が不要になります。特に、エスケープされた引用符、Windowsスタイルの改行コード、複数行のセル値といった特殊なケースにおいて有効です。 サポートされているフォーマットと区切り文字オ​​プションの詳細については、 IronXL CSV のドキュメントを参照してください。

ASP Import CSV: A Complete C# Developer's Guide: Image 1 - シンプルなCSVファイルをインポートし、コンソールで出力を読み取る

CSVデータ用のモデルクラスを作成するにはどうすればよいですか?

CSVデータを厳密に型指定されたオブジェクトにマッピングするには、ファイル構造を反映したモデルクラスが必要です。 生の文字列データを、整数、小数、日時値などの特定の型に変換します。 製品在庫データについては、各CSV列に対応するプロパティを持つクラスを作成します。

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}
Public Class Product
    Public Property Id As Integer
    Public Property Name As String = String.Empty
    Public Property Price As Decimal
    Public Property Quantity As Integer
End Class
$vbLabelText   $csharpLabel

CSV行を型付きコレクションに解析する

モデルクラスを定義することで、CSVレコードを型付きコレクションに解析できます。 次の例は、ループインデックスを使用してヘッダ行をスキップし、その後の各行をProductオブジェクトにマッピングします。

using IronXL;

WorkBook workbook = WorkBook.LoadCSV("inventory.csv");
WorkSheet ws = workbook.DefaultWorkSheet;
var records = new List<Product>();

// Skip header row (index 0), iterate through data rows
for (int i = 1; i < ws.Rows.Count(); i++)
{
    var row = ws.Rows[i];
    var product = new Product
    {
        Id = row.Columns[0].IntValue,
        Name = row.Columns[1].StringValue,
        Price = row.Columns[2].DecimalValue,
        Quantity = row.Columns[3].IntValue
    };
    records.Add(product);
}

Console.WriteLine($"Loaded {records.Count} products.");
using IronXL;

WorkBook workbook = WorkBook.LoadCSV("inventory.csv");
WorkSheet ws = workbook.DefaultWorkSheet;
var records = new List<Product>();

// Skip header row (index 0), iterate through data rows
for (int i = 1; i < ws.Rows.Count(); i++)
{
    var row = ws.Rows[i];
    var product = new Product
    {
        Id = row.Columns[0].IntValue,
        Name = row.Columns[1].StringValue,
        Price = row.Columns[2].DecimalValue,
        Quantity = row.Columns[3].IntValue
    };
    records.Add(product);
}

Console.WriteLine($"Loaded {records.Count} products.");
Imports IronXL

Dim workbook As WorkBook = WorkBook.LoadCSV("inventory.csv")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
Dim records As New List(Of Product)()

' Skip header row (index 0), iterate through data rows
For i As Integer = 1 To ws.Rows.Count() - 1
    Dim row = ws.Rows(i)
    Dim product As New Product With {
        .Id = row.Columns(0).IntValue,
        .Name = row.Columns(1).StringValue,
        .Price = row.Columns(2).DecimalValue,
        .Quantity = row.Columns(3).IntValue
    }
    records.Add(product)
Next

Console.WriteLine($"Loaded {records.Count} products.")
$vbLabelText   $csharpLabel

Productオブジェクトが含まれるようになりました。 IronXLのセル値アクセサーは、型変換を自動的に処理します。これには、オプションフィールドのnull値処理も含まれます。

オプションフィールドとnull許容フィールドの扱い方

実際のCSVファイルには、空のセルやオプションの列が含まれていることがよくあります。 IronXL の値アクセサーは、セルが空白の場合、例外ではなくデフォルト値を返します。 null許容型の場合は、条件チェックを使用できます。

// Reading an optional DateTime field
DateTime? lastUpdated = string.IsNullOrEmpty(row.Columns[4].StringValue)
    ? null
    : row.Columns[4].DateTimeValue;
// Reading an optional DateTime field
DateTime? lastUpdated = string.IsNullOrEmpty(row.Columns[4].StringValue)
    ? null
    : row.Columns[4].DateTimeValue;
' Reading an optional DateTime field
Dim lastUpdated As DateTime? = If(String.IsNullOrEmpty(row.Columns(4).StringValue), Nothing, row.Columns(4).DateTimeValue)
$vbLabelText   $csharpLabel

このパターンでは、すべてのセルアクセスをtry-catchブロックで囲むことなく、インポートコードの防御性を維持できます。 複雑なデータ型や大容量ファイルの取り扱いに関するガイダンスについては、 IronXL WorkSheet のドキュメントを参照してください。

Web APIでCSVファイルのアップロードを処理するにはどうすればよいでしょうか?

ブラウザからCSVファイルをアップロードするAPIエンドポイントを構築するには、ASP.NET CoreのIFormFileとIronXLの解析機能を組み合わせる必要があります。 以下のコードは、アップロードされたファイルを解析し、JSONレスポンスを返すコントローラーの完全な実装例を示しています。

using IronXL;
using Microsoft.AspNetCore.Mvc;

[Route("api/[controller]")]
[ApiController]
public class CsvController : ControllerBase
{
    [HttpPost("upload")]
    public async Task<IActionResult> UploadCsv(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest("Please upload a valid CSV file.");

        try
        {
            using var stream = new MemoryStream();
            await file.CopyToAsync(stream);
            stream.Position = 0;

            WorkBook workbook = WorkBook.Load(stream, "csv");
            WorkSheet ws = workbook.DefaultWorkSheet;
            var records = new List<Product>();

            // Skip header row, iterate through data rows
            for (int i = 1; i < ws.Rows.Count(); i++)
            {
                var row = ws.Rows[i];
                records.Add(new Product
                {
                    Id = row.Columns[0].IntValue,
                    Name = row.Columns[1].StringValue,
                    Price = row.Columns[2].DecimalValue,
                    Quantity = row.Columns[3].IntValue
                });
            }

            return Ok(new
            {
                message = "Import successful",
                count = records.Count,
                data = records
            });
        }
        catch (Exception ex)
        {
            return BadRequest($"Error processing file: {ex.Message}");
        }
    }
}
using IronXL;
using Microsoft.AspNetCore.Mvc;

[Route("api/[controller]")]
[ApiController]
public class CsvController : ControllerBase
{
    [HttpPost("upload")]
    public async Task<IActionResult> UploadCsv(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest("Please upload a valid CSV file.");

        try
        {
            using var stream = new MemoryStream();
            await file.CopyToAsync(stream);
            stream.Position = 0;

            WorkBook workbook = WorkBook.Load(stream, "csv");
            WorkSheet ws = workbook.DefaultWorkSheet;
            var records = new List<Product>();

            // Skip header row, iterate through data rows
            for (int i = 1; i < ws.Rows.Count(); i++)
            {
                var row = ws.Rows[i];
                records.Add(new Product
                {
                    Id = row.Columns[0].IntValue,
                    Name = row.Columns[1].StringValue,
                    Price = row.Columns[2].DecimalValue,
                    Quantity = row.Columns[3].IntValue
                });
            }

            return Ok(new
            {
                message = "Import successful",
                count = records.Count,
                data = records
            });
        }
        catch (Exception ex)
        {
            return BadRequest($"Error processing file: {ex.Message}");
        }
    }
}
Imports IronXL
Imports Microsoft.AspNetCore.Mvc
Imports System.IO
Imports System.Threading.Tasks

<Route("api/[controller]")>
<ApiController>
Public Class CsvController
    Inherits ControllerBase

    <HttpPost("upload")>
    Public Async Function UploadCsv(file As IFormFile) As Task(Of IActionResult)
        If file Is Nothing OrElse file.Length = 0 Then
            Return BadRequest("Please upload a valid CSV file.")
        End If

        Try
            Using stream As New MemoryStream()
                Await file.CopyToAsync(stream)
                stream.Position = 0

                Dim workbook As WorkBook = WorkBook.Load(stream, "csv")
                Dim ws As WorkSheet = workbook.DefaultWorkSheet
                Dim records As New List(Of Product)()

                ' Skip header row, iterate through data rows
                For i As Integer = 1 To ws.Rows.Count() - 1
                    Dim row = ws.Rows(i)
                    records.Add(New Product With {
                        .Id = row.Columns(0).IntValue,
                        .Name = row.Columns(1).StringValue,
                        .Price = row.Columns(2).DecimalValue,
                        .Quantity = row.Columns(3).IntValue
                    })
                Next

                Return Ok(New With {
                    .message = "Import successful",
                    .count = records.Count,
                    .data = records
                })
            End Using
        Catch ex As Exception
            Return BadRequest($"Error processing file: {ex.Message}")
        End Try
    End Function
End Class
$vbLabelText   $csharpLabel

エンドポイントとマルチパートフォームの設定

[HttpPost("upload")]アクションでファイルアップロードを受け入れるには、プロジェクトがマルチパートフォームデータをサポートする必要があります。 ミニマルAPI設定のためにapp.MapControllers()を呼び出したことを確認してください。 エンドポイントは/api/csv/uploadでアクセス可能になります。

ブラウザフォームからテストする際、フォームのmultipart/form-dataに設定し、ファイル入力要素を使用してください。 APIクライアント(例:Postman)の場合、リクエストボディで"form-data"を選択し、fileというキーを追加してCSVファイルを添付します。コントローラは、レコード数と解析されたデータ配列を含むJSONオブジェクトを返します。クライアント側 for JavaScriptはすぐにこれを利用できます。

ASP Import CSV: A Complete C# Developer's Guide: Image 2 - インポートしたCSVファイルから読み取ったデータによる成功した出力

解析前にファイルタイプを検証する

IronXLにストリームを渡す前に、ファイル拡張子を検証して、CSV以外のファイルのアップロードを拒否します。

var extension = Path.GetExtension(file.FileName).ToLowerInvariant();
if (extension != ".csv" && extension != ".txt")
    return BadRequest("Only CSV files are accepted.");
var extension = Path.GetExtension(file.FileName).ToLowerInvariant();
if (extension != ".csv" && extension != ".txt")
    return BadRequest("Only CSV files are accepted.");
Dim extension As String = Path.GetExtension(file.FileName).ToLowerInvariant()
If extension <> ".csv" AndAlso extension <> ".txt" Then
    Return BadRequest("Only CSV files are accepted.")
End If
$vbLabelText   $csharpLabel

このチェックにより、不正な形式のバイナリデータがパーサーに到達するのを防ぎ、API利用者に対して明確なエラーメッセージを提供します。 このバリデーションを拡張してfile.ContentTypeを使用してMIMEタイプを確認し、より厳密な確認を行うことができます。

CSVデータをデータベースに保存するにはどうすればよいですか?

CSVファイルを型付きオブジェクトに解析した後、通常はそのレコードをデータベースに保存します。 次の例は、Entity Framework CoreのAddRangeAsyncを使用してバルク挿入を行うことでサービス層パターンを拡張しています。

using IronXL;

public class CsvImportService
{
    private readonly AppDbContext _context;

    public CsvImportService(AppDbContext context)
    {
        _context = context;
    }

    public async Task<int> ImportProductsAsync(Stream csvStream)
    {
        WorkBook workbook = WorkBook.LoadCSV(csvStream);
        WorkSheet ws = workbook.DefaultWorkSheet;
        var products = new List<Product>();

        foreach (var row in ws.Rows.Skip(1))
        {
            products.Add(new Product
            {
                Id = row.Columns[0].IntValue,
                Name = row.Columns[1].StringValue,
                Price = row.Columns[2].DecimalValue,
                Quantity = row.Columns[3].IntValue
            });
        }

        await _context.Products.AddRangeAsync(products);
        return await _context.SaveChangesAsync();
    }
}
using IronXL;

public class CsvImportService
{
    private readonly AppDbContext _context;

    public CsvImportService(AppDbContext context)
    {
        _context = context;
    }

    public async Task<int> ImportProductsAsync(Stream csvStream)
    {
        WorkBook workbook = WorkBook.LoadCSV(csvStream);
        WorkSheet ws = workbook.DefaultWorkSheet;
        var products = new List<Product>();

        foreach (var row in ws.Rows.Skip(1))
        {
            products.Add(new Product
            {
                Id = row.Columns[0].IntValue,
                Name = row.Columns[1].StringValue,
                Price = row.Columns[2].DecimalValue,
                Quantity = row.Columns[3].IntValue
            });
        }

        await _context.Products.AddRangeAsync(products);
        return await _context.SaveChangesAsync();
    }
}
Imports IronXL

Public Class CsvImportService
    Private ReadOnly _context As AppDbContext

    Public Sub New(context As AppDbContext)
        _context = context
    End Sub

    Public Async Function ImportProductsAsync(csvStream As Stream) As Task(Of Integer)
        Dim workbook As WorkBook = WorkBook.LoadCSV(csvStream)
        Dim ws As WorkSheet = workbook.DefaultWorkSheet
        Dim products As New List(Of Product)()

        For Each row In ws.Rows.Skip(1)
            products.Add(New Product With {
                .Id = row.Columns(0).IntValue,
                .Name = row.Columns(1).StringValue,
                .Price = row.Columns(2).DecimalValue,
                .Quantity = row.Columns(3).IntValue
            })
        Next

        Await _context.Products.AddRangeAsync(products)
        Return Await _context.SaveChangesAsync()
    End Function
End Class
$vbLabelText   $csharpLabel

サービスを依存性注入に組み込む

コントローラがコンストラクタインジェクションを介してそれを要求できるように、Program.csに登録します。

builder.Services.AddScoped<CsvImportService>();
builder.Services.AddScoped<CsvImportService>();
$vbLabelText   $csharpLabel

その後、コントローラのコンストラクタを更新し、サービスを受け入れてImportProductsAsyncを呼び出します。これにより、インラインでリストを構築する代わりに、コントローラアクションがシンプルになり、データアクセスロジックをテスト可能なサービスクラスに移行します。 Entity Framework CoreはCSVファイルに数千行が含まれている場合に、INSERTステートメントにバッチ処理します。

大規模なインポート(数万行)では、EF CoreのBulk Extensionsまたは生のSQL BULK INSERTステートメントを使用してデータベースへの往復を減少させることを検討してください。

IronXLを使用してデータをCSV形式にエクスポートするにはどうすればよいですか?

IronXLはCSVファイルの読み込みだけでなく、書き込みも可能です。 SaveAsCsvメソッドは、任意のワークシートをCSVファイルにエクスポートします。これは、レポートを生成したり、下流システムにデータを送信したりするのに便利です。

using IronXL;

WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLS);
WorkSheet ws = workbook.DefaultWorkSheet;

// Write headers
ws["A1"].Value = "Id";
ws["B1"].Value = "Name";
ws["C1"].Value = "Price";

// Write data rows
ws["A2"].Value = 1;
ws["B2"].Value = "Widget A";
ws["C2"].Value = 9.99;

ws["A3"].Value = 2;
ws["B3"].Value = "Widget B";
ws["C3"].Value = 14.49;

// Save as CSV
workbook.SaveAsCsv("export.csv");
Console.WriteLine("CSV export complete.");
using IronXL;

WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLS);
WorkSheet ws = workbook.DefaultWorkSheet;

// Write headers
ws["A1"].Value = "Id";
ws["B1"].Value = "Name";
ws["C1"].Value = "Price";

// Write data rows
ws["A2"].Value = 1;
ws["B2"].Value = "Widget A";
ws["C2"].Value = 9.99;

ws["A3"].Value = 2;
ws["B3"].Value = "Widget B";
ws["C3"].Value = 14.49;

// Save as CSV
workbook.SaveAsCsv("export.csv");
Console.WriteLine("CSV export complete.");
Imports IronXL

Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Write headers
ws("A1").Value = "Id"
ws("B1").Value = "Name"
ws("C1").Value = "Price"

' Write data rows
ws("A2").Value = 1
ws("B2").Value = "Widget A"
ws("C2").Value = 9.99

ws("A3").Value = 2
ws("B3").Value = "Widget B"
ws("C3").Value = 14.49

' Save as CSV
workbook.SaveAsCsv("export.csv")
Console.WriteLine("CSV export complete.")
$vbLabelText   $csharpLabel

エクスポートされたファイルは、デフォルトでカンマ区切り文字を使用します。 ヨーロッパのロケールによく見られるセミコロン区切りのファイルの場合は、明示的な区切り文字引数と共にSaveAsCsv("export.csv", ";")を呼び出します。 また、File(stream, "text/csv", "export.csv")を使用してAPIエンドポイントからファイルダウンロードとして結果を返すこともできます。

エクスポートオプションの完全なリファレンスについては、IronXL保存とエクスポートドキュメントをご覧ください。

IronXLが手動によるCSV解析よりも優れた選択肢である理由とは?

手動でのCSV解析は一見簡単そうに見えますが、引用符で囲まれたカンマ、セル内に埋め込まれた改行、エスケープされた引用符、UTF-8ファイルの先頭にあるバイトオーダーマークなど、特殊なケースに遭遇すると難しくなります。 カスタムStreamReaderループでこれらを正しく処理するには、かなりのテストと継続的なメンテナンスが必要です。

IronXLはこれらのケースすべてに社内で対応しています。 2つのアプローチを比較すると、明確な利点が明らかになる。

C#におけるCSV解析のためのIronXLと手動StreamReaderの比較
能力 IronXL マニュアルStreamReader
区切り文字の自動検出 はい いいえ、手動で設定する必要があります
見積もり現場処理 組み込み カスタムロジックが必要です
型変換(int、decimal、DateTime) 内蔵アクセサリー Parse/TryParse呼び出しが必要です
複数行のセル値 自動的に処理されます 正しく実装するのが難しい
BOMの取り扱い 自動翻訳 StreamReaderの設定が必要です
Excel形式(XLSX、XLS)に対応 同じAPI 別途ライブラリが必要です
CSVへのエクスポート SaveAsCsvメソッド 別途書き込みロジックが必要

フォーマット間の一貫性

IronXLの実用的な利点の1つは、同じWorkBook.Loadとワークシート反復パターンがXLSX、XLS、ODS、およびCSVファイルに対して機能することです。 アプリケーションがユーザーから複数のスプレッドシート形式を受け入れる必要がある場合、解析ロジックを変更することなく形式を切り替えることができます。 ファイルストリームをWorkBook.Loadに渡すと、IronXLがファイル署名に基づいてフォーマットを自動的に検出します。

このクロスフォーマットAPIにより、CSVとExcel用に別々の実装を維持する必要がなく、1つのコードパスを記述してテストするだけで済みます。 サポートされているファイル形式の完全なリストについては、 IronXLのサポート対象ファイル形式ページを参照してください。

大容量ファイルに関するパフォーマンス上の考慮事項

100MB以下のCSVファイルであれば、 IronXLはチューニングなしでも十分に機能します。 より大きなファイルの場合は、以下の戦略を検討してください。

  • メモリ割り当てを削減するためにファイルをMemoryStreamにコピーするのではなく、パスから読み込みます。
  • データベースに挿入する際に、最初の挿入前にすべてのレコードを収集するのではなく、行をバッチ処理する。
  • LINQとProductオブジェクトとして実体化しないようにします。

IronXL パフォーマンスガイドでは、大量のインポートシナリオにおける並列処理やストリーミングモードなどの追加の最適化について説明しています。

次のステップは何ですか?

これで、 ASP.NET Coreでの CSV インポートのすべての段階(ライブラリのインストール、ディスクまたはアップロードされたストリームからのファイルの読み込み、行を型付きモデルオブジェクトにマッピング、Entity Framework Core を使用してレコードをデータベースに永続化、必要に応じてデータを CSV にエクスポートする)に対応する動作パターンが揃いました。

この基礎の上にさらに知識を深めるために、以下のリソースをご活用ください。

プロジェクトにIronXLを組み込めば、CSVの他にXLSXアップロードのサポートを追加するためにコード変更は不要です。同じWorkBook.Load呼び出しがどちらも処理します。 その一貫性により、アプリケーションの要件が拡大するにつれて、インポートエンドポイントの機能セットを段階的に拡張することができます。

よくある質問

ASP.NET Coreアプリケーションに CSV ファイルをインポートするにはどうすればよいですか?

IronXLを使用して、ファイルのアップロード、CSVデータの解析、モデルクラスオブジェクトへのマッピングを行うことで、 ASP.NET CoreアプリケーションにCSVファイルをインポートできます。IronXLは、これらのタスクを効率的に実行するためのAPIを提供しています。

C# での CSV インポートにIronXLを使用する利点は何ですか?

IronXLは、CSVファイルのインポートプロセスを簡素化するAPIを提供しています。データの解析、モデルへのマッピング、レコードのJSONへの変換が簡単に行えるため、データ駆動型アプリケーションに最適です。

IronXL はCSV データをモデル クラス オブジェクトに解析できますか?

はい、 IronXL はCSV データをモデル クラス オブジェクトに解析できるため、 .NETアプリケーション内で構造化データを効率的に操作できます。

IronXL は、CSV ファイルのインポート時にデータベース統合にどのように役立ちますか?

IronXL は、CSV データを解析し、データベースに簡単に挿入または更新できるモデル オブジェクトにマップできるようにすることで、データベース統合を支援します。

IronXLを使用して CSV レコードを JSON として返すことは可能ですか?

はい、 IronXLを使用すると、CSV レコードを JSON 形式に変換できます。これは、Web API の作成やフロントエンド アプリケーションとの統合に役立ちます。

IronXL はCSV 以外にどのようなファイル形式を処理できますか?

IronXL はCSV に加えて、XLSX、XLS などのさまざまな Excel ファイル形式を処理できるため、さまざまなスプレッドシートのニーズに柔軟に対応できます。

IronXL は大きな CSV ファイルのインポートをサポートしていますか?

IronXL は、大規模な CSV ファイルのインポートを効率的に処理するように設計されており、データ駆動型アプリケーションのパフォーマンスと信頼性を保証します。

Curtis Chau
テクニカルライター

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

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

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね