フッターコンテンツにスキップ
IRONXLの使用
VB NETでExcelファイルをSQLデータベースにインポートする方法

VB.NETでExcelファイルをSQLデータベースにインポートする方法

2つの効果的な管理および分析ツールはSQLデータベースとExcelであり、それぞれ特別な機能と能力を持っています。

Excel

Excelはマイクロソフトによって作成された人気のスプレッドシートプログラムです。 その使いやすいインターフェースと、さまざまなデータ整理、計算、分析、視覚化の活動を管理する適応性により、評判を得ています。 ユーザーはExcelシートのセルにデータを入力し、行や列に配置し、数学的操作を実行し、データを要約分析するためのグラフやピボットテーブルを作成したり、Excelからデータをインポートすることができます。 Excelは、個人、企業、組織の間で、財務分析、在庫管理、レポート作成、予算作成など、さまざまな目的で広く利用されているツールです。

SQL

構造化データは、SQL (Structured Query Language) に対応したデータベースを使用して保存、管理、取得されます。 それらの基盤はリレーショナルモデルであり、行列のテーブルで構成されます。 ユーザーはSQLコマンドを使用してデータベースを作成、変更、クエリを実行することができ、MySQL、PostgreSQL、SQL Server、SQLiteなどのSQLデータベースは強力なデータ検索と操作能力、スケーラビリティ、整合性保証を提供します。

この記事では、VB.NETがプロバイダー Microsoft.ACE.OLEDB.12.0 を使用せずにSQL ServerデータベーステーブルにExcelファイルをインポートする方法を見ていきます。

VB.NETを使用してExcelファイルをSQLデータベースにインポートする方法

  1. 新しいVisual Studioプロジェクトを作成します。
  2. 必要なライブラリをインストールします。
  3. ここで、ExcelファイルをインポートしてDataTableに変換するかデータを取得します。
  4. SQLデータベースに接続します。
  5. インポートされたデータをデータベーステーブルに保存します。
  6. SQL接続を閉じてオブジェクトを破棄します。

IronXLとは

C#, VB.NET, Visual Basic および他の.NET言語で書かれたExcelファイルの処理を容易にするために作成された強力な.NETフレームワークである IronXL。 XLSおよびXLSXファイル形式に対応しています。 このライブラリは、開発者がExcelスプレッドシートを作成、読み込み、編集、生成しやすくし、速度を向上させます。 また、多数のツールと機能が利用可能です。

IronXLの主な特徴と能力には次のものがあります:

  • データ処理:IronXLは、Excelスプレッドシートでのデータ読み取り、書き込み、操作を容易にします。 セルを2次元配列で取得でき、計算式やデータフォーマットも可能です。
  • Excelファイルの作成と変更:新しいExcelファイルの生成や既存のものの変更に加え、開発者はワークシートの追加、削除、管理もでき、多くのExcelコンポーネントを扱えます。 それは多くのExcelコンポーネントを扱えます。
  • クロスプラットフォーム互換性:IronXLは、クロスプラットフォームの互換性により、Xamarin、.NET Core、そして.NET Frameworkを含む複数の.NETプラットフォームで利用でき、幅広いアプリケーションシナリオで利用可能です。
  • 柔軟性と互換性:古いXLSおよびより新しいXLSX Excel形式の両方をサポートし、いくつかのExcelバージョンと互換性があります。
  • レガシーおよび最新のExcel形式のサポート:より現代的なXMLベースの形式(Excel 2007以降のXLSX)と従来のExcelファイル形式(Excel 97–2003以降のXLS)の両方をサポートできます。
  • 有用性:ライブラリは単純なAPIを提供し、簡単に理解できるプロパティと関数を備え、経験の異なる開発者でもExcel関連の活動をよりアクセスしやすくします。
  • データの抽出とエクスポート:IronXLはExcelファイルからのデータ抽出ならびにExcelデータをさまざまな形式にエクスポートすることを容易にし、データベースや他のシステムとのインターフェースを簡単にします。
  • ドキュメントとサポート:IronXLは、そのライブラリをExcel関連のタスクに使用することを支援する豊富なドキュメント、チュートリアル、サポートを提供します。
  • オートメーションと効率性:Excelタスクを自動化することで、IronXLはユーザーの生産性を向上させ、手作業の時間を短縮し、データ駆動の効率的なアプリケーションを開発できるようにします。
  • 統合とカスタマイズ:多様な形式にExcelデータをエクスポートするオプションを提供し、パーソナライズされたレポートやデータ駆動のソリューションを作成するのを容易にします。 データベースや他のシステムともスムーズに連携します。

IronXLは、金融、データ分析、レポーティング、ビジネスインテリジェンス、ソフトウェア開発などの多くの分野で利用されています。 開発者がプログラム的にExcelファイルを扱い、Excelの統合とデータ操作を組み合わせた信頼性のあるソリューションを構築できるようにします。 こちらをクリックして詳細を確認してください。

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

Visual Studioコンソールプロジェクトの作成は簡単です。 Visual Studioでコンソールアプリケーションを作成するには、次の手順に従います:

  1. Visual Studioを起動する:Visual Studio(PCにインストールされていることを確認してください)を開きます。

新しいプロジェクトを開始

ファイルを選択し、次に新規、続いてプロジェクトを選びます。

VB.NETでExcelファイルをSQLデータベースにインポートする方法:図1 - コンソールアプリ

左側のパネルから好みのプログラミング言語(例:C#)を選択します。

次に、利用可能なプロジェクトテンプレートのリストから、"コンソールアプリ"または"コンソールアプリ(.NET Core)"テンプレートを選択します。

"名前"セクションにプロジェクト名を入力します。

VB.NETでExcelファイルをSQLデータベースにインポートする方法:図2 - プロジェクト設定

プロジェクトを保存する場所を選択します。

新しいコンソールアプリケーションプロジェクトを始めるには、"作成"をクリックします。

VB.NETでExcelファイルをSQLデータベースにインポートする方法:図3 - コンソールアプリの作成

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

IronXLライブラリをインストールするには、次の手順に従います:

  1. NuGet パッケージ マネージャー コンソールを開くには、ツール > NuGet パッケージ マネージャー > パッケージ マネージャー コンソールに移動します。
  2. 次のコマンドを使用してIronXLライブラリをインストールします:
Install-Package IronXL.Excel

VB.NETでExcelファイルをSQLデータベースにインポートする方法:図4 - IronXLのインストール

または、NuGetパッケージマネージャーを使用してIronXLライブラリをインストールすることもできます。 単に"IronXL"パッケージを検索し、ダウンロードするIronXLに関連するNuGetパッケージの内どれを選ぶかをリストから選択します。

VB.NETでExcelファイルをSQLデータベースにインポートする方法:図5 - IronXL

ExcelファイルのインポートとSQLデータベースへの追加にIronXLを使用する

これらの手順を使用してIronXLを使ってExcelファイルからデータをインポートし、VB.NETを使用してSQLデータベースに追加することができます。 この例は、IronXLを使用してExcelファイルを読み込み、データをSQL Serverデータベースに挿入する方法を示しています。

Imports IronXL
Imports System.Data
Imports System.Data.SqlClient

Module Program
    Sub Main(args As String())

        ' Define the path to the Excel file
        Dim excelFilePath As String = "Demo.xlsx"

        ' Define the connection string to connect to the SQL Server database
        Dim connectionString As String = "Data Source=DESKTOP-QBIBUNV;Initial Catalog=Mohammed;Integrated Security=True;Encrypt=False"

        ' Load the Excel file using IronXL
        Dim workbook As WorkBook = WorkBook.Load(excelFilePath)
        Dim worksheet As WorkSheet = workbook.DefaultWorkSheet

        ' Set up the SQL connection
        Using connection As New SqlConnection(connectionString)
            connection.Open()

            ' Iterate through rows and insert data into SQL database
            For Each row As DataRow In worksheet.ToDataTable().AsEnumerable()

                ' Extract cell data
                Dim cellData As List(Of String) = New List(Of String)()

                For Each cell In row.ItemArray
                    cellData.Add(cell.ToString())
                Next

                ' Insert data into SQL database
                InsertDataIntoSQL(connection, cellData)
            Next
        End Using
    End Sub

    ' Method to insert data into SQL database
    Private Sub InsertDataIntoSQL(connection As SqlConnection, data As List(Of String))

        ' Define your SQL INSERT query
        Dim sqlQuery As String = "INSERT INTO ExcelData (Name, Age) VALUES (@Value1, @Value2)"

        ' Create a SqlCommand object with parameters
        Using command As New SqlCommand(sqlQuery, connection)

            ' Set parameters (adjust as per your column names and data)
            command.Parameters.AddWithValue("@Value1", data(0))
            command.Parameters.AddWithValue("@Value2", data(1))

            ' Execute the SQL command
            command.ExecuteNonQuery()
        End Using
    End Sub
End Module
Imports IronXL
Imports System.Data
Imports System.Data.SqlClient

Module Program
    Sub Main(args As String())

        ' Define the path to the Excel file
        Dim excelFilePath As String = "Demo.xlsx"

        ' Define the connection string to connect to the SQL Server database
        Dim connectionString As String = "Data Source=DESKTOP-QBIBUNV;Initial Catalog=Mohammed;Integrated Security=True;Encrypt=False"

        ' Load the Excel file using IronXL
        Dim workbook As WorkBook = WorkBook.Load(excelFilePath)
        Dim worksheet As WorkSheet = workbook.DefaultWorkSheet

        ' Set up the SQL connection
        Using connection As New SqlConnection(connectionString)
            connection.Open()

            ' Iterate through rows and insert data into SQL database
            For Each row As DataRow In worksheet.ToDataTable().AsEnumerable()

                ' Extract cell data
                Dim cellData As List(Of String) = New List(Of String)()

                For Each cell In row.ItemArray
                    cellData.Add(cell.ToString())
                Next

                ' Insert data into SQL database
                InsertDataIntoSQL(connection, cellData)
            Next
        End Using
    End Sub

    ' Method to insert data into SQL database
    Private Sub InsertDataIntoSQL(connection As SqlConnection, data As List(Of String))

        ' Define your SQL INSERT query
        Dim sqlQuery As String = "INSERT INTO ExcelData (Name, Age) VALUES (@Value1, @Value2)"

        ' Create a SqlCommand object with parameters
        Using command As New SqlCommand(sqlQuery, connection)

            ' Set parameters (adjust as per your column names and data)
            command.Parameters.AddWithValue("@Value1", data(0))
            command.Parameters.AddWithValue("@Value2", data(1))

            ' Execute the SQL command
            command.ExecuteNonQuery()
        End Using
    End Sub
End Module
VB .NET

そのAPIを使用して、IronXLはExcelファイル(WorkBook.Load)を読み込み、内容を取得し、行とセルを通じて反復するための便利な方法を提供します。 このコードはExcelファイルからデータをインポートし、効果的なデータ処理のためにデータ構造と接続を活用しながらSQLデータベースに挿入します。

VB.NETでExcelファイルをSQLデータベースにインポートする方法:図6 - Excelファイル

次に、プログラムは接続文字列とSystem.Data.SqlClient名前空間を使用してSQL Serverデータベースに接続します。 その後、SQL INSERTクエリがExcelデータを対応するSQLテーブルに挿入するために準備されます。 プログラムは、パラメータ化されたSQLコマンド(SqlCommand)を使用して、取得されたセルの値を適切なSQLクエリパラメータにマッピングし、command.ExecuteNonQuery()を使用してINSERTコマンドを実行することによってExcelデータをSQLデータベースに挿入します。

VB.NETでExcelファイルをSQLデータベースにインポートする方法:図7 - SQL Server

コードについて詳しく知るには、こちらをチェックしてください。

結論

ExcelオブジェクトライブラリであるIronXLライブラリは、ソフトウェア開発、金融、データ分析、レポート作成を含むいくつかの産業によって広く使用されています。 それはExcelを活用して業務を最大化しようとする企業や開発者に不可欠なツールです。 IronXLは、効率的にプログラム的にExcelファイルを管理する動的、データ中心のアプリケーションの作成を可能にします。

要約すると、VB.NETアプリケーションでIronXLを使用することで、ExcelファイルからSQLデータベースへのスムーズなデータ転送が可能になり、両方のプラットフォームでのデータ管理における効率性と柔軟性を提供します。 IronXLは、非商業利用の制限がある無料のコミュニティエディションを提供しています。 有料バージョンは競争力のある価格で提供され、サブスクリプション方式または永続ライセンス方式での購入が可能で、追加の機能、サポート、完全な機能を提供します。 詳細で最新のライセンス情報については、IronXLの公式ウェブサイトを訪問してください。 Iron Software製品に関する詳細情報は、このリンクをご覧ください。

よくある質問

VB.NETを使用してExcelデータをSQL Serverデータベースにインポートするにはどうすればよいですか?

IronXLを活用して、VB.NETを使用してExcelデータをSQL Serverデータベースにインポートできます。まず、Visual Studioプロジェクトを作成し、NuGetパッケージマネージャーを通じてIronXLライブラリをインストールし、IronXLのAPIを使用してExcelファイルを読み込み、データベーステーブルにデータを挿入するようにSQLデータベースに接続します。

VB.NETでExcelファイルを操作する際のIronXLを使用する利点は何ですか?

IronXLは、VB.NETでExcelファイルを扱うための堅牢なソリューションを提供し、Excelファイルの読み取り、書き込み、編集といった機能を備えています。XLSおよびXLSX形式の両方をサポートし、クロスプラットフォームの互換性を保証しており、SQLデータベースとのシームレスなデータ統合に最適です。

IronXLを使用してExcelファイルからのデータの抽出とエクスポートは可能ですか?

はい、IronXLを使用すると、開発者はExcelファイルからデータを効率的に抽出およびエクスポートできます。特定のセルの値を読んだり、行と列を反復したり、SQL Serverのような他の形式やデータベースにデータをエクスポートする操作をサポートしています。

VB.NETプロジェクトにIronXLを設定する際の手順は何ですか?

VB.NETプロジェクトにIronXLを設定するには、Visual Studioを開き、NuGetパッケージマネージャーコンソールにアクセスし、コマンド Install-Package IronXL を実行します。これにより、Excelファイルをプログラムで処理するために必要なライブラリがインストールされます。

異なる.NETプラットフォームでIronXLを使用する方法はありますか?

IronXLは、Xamarin、.NET Core、.NET Frameworkなどのさまざまな.NET環境をサポートするクロスプラットフォームとして設計されており、異なるプラットフォームで互換性の問題なく使用することができます。

ExcelおよびSQLデータベースの統合において、IronXLが人気のある選択肢である理由は何ですか?

IronXLは使いやすさ、Excelファイル操作に対する包括的な機能、そしてSQLデータベースとのシームレスな統合能力で人気があります。ExcelとSQL間のデータのインポートおよびエクスポートのプロセスを簡素化し、生産性とデータ管理の効率を向上させます。

IronXLは無料バージョンを提供していますか、その制限は何ですか?

IronXLは非商用利用向けの無料コミュニティエディションを提供しており、基本的な機能といくつかの制限を含んでいます。より高度な機能と専用のサポートについては、有料バージョンが利用可能です。

IronXLは異なるExcelファイル形式をどのように処理しますか?

IronXLはレガシー(XLS)および最新の(XLSX)Excelファイル形式の両方をサポートしており、さまざまなデータ処理ニーズに対する汎用性を提供し、互換性の問題なく幅広いExcelファイルを扱うことができます。

Curtis Chau
テクニカルライター

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

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