IRONSOFTWAREHOME
IRONXLの使用

C#でExcelをSQL Serverにインポートする方法

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

多くの異なるビジネスコンテキストで、ExcelからSQL Serverへデータをインポートすることは一般的な必要性です。 Excelファイルからデータを読み取り、それをSQL Serverデータベースに入力することがこの活動に関わるタスクです。 エクスポートウィザードがよく使われますが、IronXLはデータ処理に対してよりプログラム的で柔軟なアプローチを提供します。 IronXLは、ファイルからExcelデータをインポートできる強力なC#ライブラリです; これにより、この操作を迅速化することが可能です。 そのため、本投稿はC#を使用してExcelをSQL Serverにインポートするための設定、実行、改善についての詳細なガイドを提供します。

ExcelをSQL Serverにインポートする方法(C#): 図1 - IronXL:C# Excelライブラリ

How to Import Excel to SQL Server in C#

  1. 開発環境をセットアップする
  2. Excelファイルを準備する
  3. SQL Serverデータベースと接続する
  4. IronXLを使用してExcelファイルからデータを読み取る
  5. IronPDFを使用してデータをエクスポートし、PDFレポートを生成する
  6. PDFレポートを確認する

IronXLとは?

IronXLは、時々IronXL.Excelとも呼ばれるように、.NETアプリケーションでExcelファイルを扱う作業を簡単にするために開発された機能豊富なC#ライブラリです。 この強力なツールは、Microsoft Excelをコンピュータにインストールする必要がなく、Excelファイルを読み取り、作成、および編集できるため、サーバーサイドのアプリケーションに最適です。 Excel 2007以降(.xlsx)およびExcel 97–2003(.xls)形式がIronXLでサポートされており、さまざまなExcelファイルのバージョンを管理する柔軟性を提供します。 ワークシート、行、列を操作するほかに、データを挿入、更新、および削除するなど、重大なデータ操作が可能です。

IronXLは、セルの書式設定やExcelの数式もサポートしており、複雑でよくフォーマットされたスプレッドシートのプログラム化された生成を可能にします。 複数 for .NETプラットフォーム、.NET Framework、.NET Core、および.NET 5/6との互換性とパフォーマンスの最適化により、IronXLは大規模なデータセットを効果的に処理することを保証します。 シンプルなデータのインポート/エクスポート活動にも、複雑な報告システムにもかかわらず、アプリケーションにExcelファイル操作を統合したい開発者にとって、他 for .NETフレームワークとのスムーズなインターフェースのおかげで柔軟な選択肢となります。

主要機能

Excelファイルの読み書き

開発者はIronXLを使用してExcelファイルへのデータの読み書きができます。 新しいExcelファイルを作成して既存のものを編集するのは簡単です。

Microsoft Excelのインストール不要

IronXLは他のいくつかのライブラリと異なり、アプリケーションをホストしているコンピュータ上にMicrosoft Excelをインストールする必要がありません。 このため、サーバーサイドのアプリには最適です。

さまざまなExcel形式のサポート

ライブラリはExcel 97-2003 (.xls) および Excel 2007以降 (.xlsx) 形式をサポートすることで、さまざまなExcelファイルタイプの管理に柔軟性を提供します。

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

Visual Studioコンソールプロジェクトは簡単に作成できます。 Visual Studioでコンソールアプリケーションを作成するために次の操作を行います:

  1. **Visual Studio を開きます。**開く前に、コンピューターに Visual Studio がインストールされていることを確認してください。
  2. 新しいプロジェクトを開始する: File -> New -> Projectを選択します。

ExcelをSQL Serverにインポートする方法(C#): 図2 - 新規作成をクリック

  1. Create a new projectボックスの左パネルから希望のプログラミング言語を選択します—例として、C#。
  2. 使用可能なプロジェクトテンプレートのリストからConsole App (.NET Core)テンプレートを選択します。
  3. 名前 セクションにプロジェクトの名前を入力します。

ExcelをSQL Serverにインポートする方法(C#): 図3 - 名前と保存場所を指定

  1. プロジェクトを保存する場所を決定します。
  2. 作成 をクリックしてコンソール用のアプリケーションプロジェクトを起動します。

ExcelをSQL Serverにインポートする方法(C#): 図4 - 最後にアプリケーションを起動するために作成をクリック

IronXLライブラリをインストールする

次の更新のためにはIronXLライブラリのインストールが必要です。 最後に、手続きを完了するためにはNuGetパッケージマネージャコンソールを起動し、以下のコマンドを入力します:

PM > Install-Package IronXL.Excel

ExcelをSQL Serverにインポートする方法(C#): 図5 - NuGetパッケージマネージャーコンソールで上記のコマンドを入力してIronXLをインストール

NuGetパッケージマネージャーを使用してIronXLパッケージを検索する方法もあります。 これにより、IronXLに関連付けられたNuGetパッケージの中からどれをダウンロードするか選択できます。

ExcelをSQL Serverにインポートする方法(C#): 図6 - 別の方法として、NuGetパッケージマネージャーを使用してIronXLを検索し、それをインストール

IronXLを使ったExcelのSQLへのインポート

IronXLを使ったExcelからのデータ読み取り

Excelファイルからデータを読み取るプロセスはIronXLによって容易にされています。 以下の例では、IronXLを使ってExcelファイルからデータを読み取る方法を示しています。このアプローチで、データは読み取られ、各Excelシートの行に対応する辞書のリストに保存されます。

using IronXL;
using System;
using System.Collections.Generic;

public class ExcelReader
{
    public static List<Dictionary<string, object>> ReadExcelFile(string filePath)
    {
        // Initialize a list to store data from Excel
        var data = new List<Dictionary<string, object>>();

        // Load the workbook from the file path provided
        WorkBook workbook = WorkBook.Load(filePath);

        // Access the first worksheet in the workbook
        WorkSheet sheet = workbook.WorkSheets[0];

        // Retrieve column headers from the first row
        var headers = new List<string>();
        foreach (var header in sheet.Rows[0].Columns)
        {
            headers.Add(header.ToString());
        }

        // Loop through each row starting from the second row
        for (int i = 1; i < sheet.Rows.Count; i++)
        {
            // Create a dictionary to store the row data associated with column headers
            var rowData = new Dictionary<string, object>();
            for (int j = 0; j < headers.Count; j++)
            {
                rowData[headers[j]] = sheet.Rows[i][j].Value;
            }
            data.Add(rowData);
        }

        return data;
    }
}

SQL Serverへの接続

System.Data.SqlClient名前空間から使用して、SQL Serverへの接続を確立します。 通常、データベース名、サーバー名、認証情報で構成される正しい接続文字列を持っていることを確認してください。 SQL Serverデータベースに接続しデータを追加する方法は以下の例で説明しています。

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;

public class SqlServerConnector
{
    private string connectionString;

    // Constructor accepts a connection string
    public SqlServerConnector(string connectionString)
    {
        this.connectionString = connectionString;
    }

    // Inserts data into the specified table
    public void InsertData(Dictionary<string, object> data, string tableName)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();

            // Construct an SQL INSERT command with parameterized values to prevent SQL injection
            var columns = string.Join(",", data.Keys);
            var parameters = string.Join(",", data.Keys.Select(key => "@" + key));
            string query = $"INSERT INTO {tableName} ({columns}) VALUES ({parameters})";

            using (SqlCommand command = new SqlCommand(query, connection))
            {
                // Add parameters to the command
                foreach (var kvp in data)
                {
                    command.Parameters.AddWithValue("@" + kvp.Key, kvp.Value ?? DBNull.Value);
                }

                // Execute the command
                command.ExecuteNonQuery();
            }
        }
    }
}

IronXLとSQL Serverの組み合わせ

Excelファイルを読み取りSQLデータベースにデータを挿入するためのロジックが確立されたら、これらの機能を統合してインポートプロセスを完了します。 次のアプリケーションは、Excelファイルから情報を受け取りMicrosoft SQL Serverデータベースに追加します。

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        // Define the path to the Excel file, SQL connection string, and target table name
        string excelFilePath = "path_to_your_excel_file.xlsx";
        string connectionString = "your_sql_server_connection_string";
        string tableName = "your_table_name";

        // Read data from Excel
        List<Dictionary<string, object>> excelData = ExcelReader.ReadExcelFile(excelFilePath);

        // Create an instance of the SQL connector and insert data
        SqlServerConnector sqlConnector = new SqlServerConnector(connectionString);
        foreach (var row in excelData)
        {
            sqlConnector.InsertData(row, tableName);
        }

        Console.WriteLine("Data import completed successfully.");
    }
}

このクラスは、指定されたExcelファイルからIronXLを使用してデータを読み取る責任があります。ReadExcelFile関数は、Excelワークブックをロードし、最初のワークシートを開いてデータワークシートの行をループすることでデータを収集します。 テーブルの扱いを容易にするために情報は辞書のリストに保存されます。

ExcelをSQL Serverにインポートする方法(C#): 図7 - 入力Excelファイルの例

このクラスは指定されたデータベーステーブルにデータを挿入し、SQL Serverデータベースへの接続を管理します。 InsertDataメソッドは、パラメータ化されたクエリを使用してSQLインジェクションを防ぎ、辞書のキーに基づいてSQL INSERTクエリを動的に組み立てます。これらのキーは列名を表します。

SqlServerConnectorクラスを使用して各行をSQL Serverテーブルに挿入し、Main関数が全プロセスを管理します。

ExcelをSQL Serverにインポートする方法(C#): 図8 - SQL Serverでのクエリ成功を示す出力

エラーハンドリングと最適化は、堅牢で効率的なインポートプロセスを確保するために重要です。 欠落したファイル、無効なデータ形式、SQL例外などの潜在的な問題を管理するために、強力なエラーハンドリングを実装することができます。 エラーハンドリングを組み込む例を以下に示します。

try
{
    // Insert the importing logic here
}
catch (Exception ex)
{
    Console.WriteLine("An error occurred: " + ex.Message);
}

結論

最後に、C#とIronXLを使用してExcelからMS SQLデータベースにデータをインポートすることは.NETアプリケーション内でExcelファイルを管理するための効果的で信頼性のある方法です。 IronXLは複数のExcel形式と互換性があり、Microsoft ExcelをインストールすることなくExcelデータの読み書きを容易にする強力な機能を持っています。 System.Data.SqlClientをIronXLと統合することで、開発者はパラメータ化されたクエリを使用してセキュリティを向上させ、SQLインジェクションを防ぎながら、SQL Server間でデータを簡単に移動できます。

最後に、IronXLとIron Softwareを.NET開発のツールセットに追加することで、Excelの操作、PDFの作成、OCRの使用、バーコードの活用を効率的に管理できます。 Iron Softwareの柔軟なスイートとIronXLの使いやすさ、相互運用性、およびパフォーマンスを組み合わせることで、開発を合理化し、アプリケーションの機能を向上させます。 プロジェクトの要件に合わせた明確なライセンスオプションにより、開発者は適切なモデルを自信を持って選択できます。 これらの利点を利用することで、開発者はコンプライアンスと透明性を保ちつつ、多様な困難に効果的に取り組むことができます。

Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。