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

VB.NETでIronXLを使ってExcelファイルを読む:Microsoft Officeを使わないステップバイステップガイド

VB.NETアプリケーションでExcelファイルを読み込むことは、ビジネスソフトウェア、データ処理ツール、レポートシステムにとって一般的な要件です。 Microsoft Office Interop を使用した従来のアプローチでは、Excel アプリケーションをすべての Windows デスクトップまたはサーバーにインストールする必要があり、複雑な依存関係が生じて展開に頭を悩ませていました。 このチュートリアルでは、OfficeをインストールすることなくXLSXとXLSファイル形式を処理する最新の.NETライブラリであるIronXLを使用して、VB.NETでExcelファイルのデータを読み取る方法を示します。

VB.NET(開発者コミュニティではVBと呼ばれることが多い)は、Excelファイルを読み込むための複数のオプションを提供しています。 VB.NET開発者は、Excelスプレッドシートにアクセスして操作するために、Microsoft Office Interopを使用するか、サードパーティのライブラリを使用するかを選択できます。 VB.NETでExcelファイルを読み込むためのライブラリは、Microsoft独自のツールやサードパーティのソリューションなど、いくつかあります。 IronXLのようなこれらのライブラリの多くは、NuGetパッケージマネージャ経由で簡単にインストールでき、VB.NETプロジェクトのセットアッププロセスを合理化します。

Excelのワークフローを文書化したり説明したりする場合、開発者はExcelのデータがどのように構造化され処理されるかを視覚的に示すために、スプレッドシートのプレビュー、ワークシートのレイアウト、コードと出力の比較などの画像を含めることがよくあります。 IronXLのようなライブラリを使用することで、Excelの画像に表示されるデータとVB.NETアプリケーションがプログラムで読み取るデータが正確に一致し、技術文書やチュートリアルのわかりやすさが向上します。


どのようにIronXL for VB.NET Excel Processingをインストールしますか?

IronXLはVisual StudioのNuGetパッケージマネージャーコンソールからインストールしてください。 VB.NETプロジェクトを開いて実行してください:

Install-Package IronXL.Excel

VB.NET Reading Excel Files Using IronXL:Microsoft Officeなしのステップバイステップガイド:イメージ1 - インストール

インストール後、VB.NETコードファイルの先頭に名前空間インポートを追加してください:

Imports IronXL
Imports System
Imports IronXL
Imports System
VB .NET

これがセットアップのすべてです。以下の簡単な指示に従えば、準備は完了です。 COM参照、Office Primary Interop Assemblies、およびバージョン固有の依存関係を管理する必要はありません。 あなたのプロジェクトは、Excelファイルの作成、読み取り、書き込み、操作が可能です。


Excelのファイル形式を理解する

VB.NETでExcelファイルを扱う場合、さまざまなExcelファイル形式を理解することは、スプレッドシートデータを効果的に読み取り、書き込み、操作できる堅牢なアプリケーションを構築するために不可欠です。 最も一般的なフォーマットはXLS、XLSX、XLSBです。 各フォーマットには独自の特徴があり、.NETプロジェクトでのExcelデータへのアクセス方法や処理方法に影響を与えます。

XLSはレガシーExcelファイルフォーマットで、Excel 2003以前で使用されていました。 バイナリ構造でデータを保存するため、専用のライブラリなしでは直接操作することが難しくなります。 XLSXは、Excel 2007で導入され、現在ではほとんどの最新のExcelワークブックのデフォルト形式となっています。 XLSXファイルは実際にはXMLファイルを含むZIPアーカイブであるため、プログラムによる操作がしやすく、クロスプラットフォームのアプリケーションに適しています。 XLSBは、大規模なExcelファイル用に設計されたバイナリ形式で、大規模なデータセットに対してより高速な読み取りと書き込み操作を提供します。

VB.NETでExcelファイルを作成する場合、ニーズに合った形式を選択することが重要です。 IronXLのようなライブラリを使用すると、要件に応じてXLS、XLSX、CSV、TSV形式で新しいワークブックを簡単に生成できます。 たとえば、異なるプラットフォームのユーザーとデータを共有したり、他のシステムと統合したりする必要がある場合は、XLSXやCSVが最適かもしれません。レガシーシステムを扱う場合は、古いXLSファイル形式をサポートする必要があるかもしれません。

これらの形式の違いは、Excelファイルの読み書きにも影響します。 たとえば、XLSXファイルはXMLベースなので解析や操作が簡単ですが、XLSファイルはバイナリデータを扱う必要があります。 IronXLでは、WorkBook.Loadメソッドを使用することで、形式に関係なくExcelファイルを読み込むことができます。 ロードされると、Excelワークブックにアクセスし、各Excelワークシートを繰り返し処理し、ValueプロパティまたはCellsコレクションを使用してセルの値を取得または更新することができます。 VB.NETでExcelファイルを操作する場合、数値、テキスト、日付などの異なるデータ型を扱うことがよくあります。 FormatValue メソッドを使用すると、Excel データを希望する形式で表示できるため、アプリケーションで情報を明確に表示できます。

Excelファイルを読み込むにはどうすればよいですか?

WorkBook.Load メソッドは、任意の Excel ファイルを開き、すべてのワークシートと Excel データを含むワークブック オブジェクトを返します。 IronXLは自動的にファイル形式を検出し、XLSX、XLS、XLSM、CSV、TSVのスプレッドシート形式をサポートします。

Imports IronXL
Imports System

Module Program
    Sub Main()
        ' Load the Excel workbook from file path
        Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
        ' Access the first worksheet in the workbook
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        ' Read a single cell value using the Value property
        Dim companyName As String = sheet("A1").StringValue
        Console.WriteLine("Company: " & companyName)
    End Sub
End Module
Imports IronXL
Imports System

Module Program
    Sub Main()
        ' Load the Excel workbook from file path
        Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
        ' Access the first worksheet in the workbook
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        ' Read a single cell value using the Value property
        Dim companyName As String = sheet("A1").StringValue
        Console.WriteLine("Company: " & companyName)
    End Sub
End Module
VB .NET

WorkBook.Loadメソッドは、ファイルパス文字列を受け取り、スプレッドシートの内容への完全なアクセスを提供するWorkBookオブジェクトを返します。 DefaultWorkSheetプロパティは最初のシートを取得し、StringValueプロパティはセルの内容をテキストとして抽出します。 また、workbook.GetWorkSheet("Sheet1")を使用して名前でワークシートにアクセスしたり、workbook.WorkSheets(0)を使用してインデックスで新しいワークブック内の任意のシートを取得することもできます。

入力

VB.NET Reading Excel Files Using IronXL:A Step-by-Step Guide Without Microsoft Office:画像2 - サンプルExcel入力</a

出力

VB.NET Reading Excel Files Using IronXL:A Step-by-Step Guide Without Microsoft Office:画像3 - コンソール出力

パスワードで保護されたExcelファイルの場合は、2番目のパラメータとしてパスワードを渡します:WorkBook.Load("Protected.xlsx", "myPassword")。 この方法は、指定したファイル名で動作します。

セルから異なるデータ型を読み取るにはどうすればよいですか?

Excelのセルには、テキスト、数値、日付、数式など、さまざまなデータタイプが含まれています。 IronXLはセルの値を手動で変換することなく正しい形式で抽出するための型付きプロパティを提供します。 各セル・オブジェクトは、異なるデータ型用の値プロパティを公開しています。

Imports IronXL
Imports System

Module Program
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        ' Read different data types from row 2 cells
        Dim employeeId As Integer = sheet("A2").IntValue
        Dim employeeName As String = sheet("B2").StringValue
        Dim salary As Decimal = sheet("D2").DecimalValue
        Dim hireDate As DateTime = sheet("E2").DateTimeValue
        ' Display the extracted Excel data
        Console.WriteLine("ID: " & employeeId.ToString())
        Console.WriteLine("Name: " & employeeName)
        Console.WriteLine("Salary: $" & salary.ToString("N2"))
        Console.WriteLine("Hired: " & hireDate.ToShortDateString())
    End Sub
End Module
Imports IronXL
Imports System

Module Program
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        ' Read different data types from row 2 cells
        Dim employeeId As Integer = sheet("A2").IntValue
        Dim employeeName As String = sheet("B2").StringValue
        Dim salary As Decimal = sheet("D2").DecimalValue
        Dim hireDate As DateTime = sheet("E2").DateTimeValue
        ' Display the extracted Excel data
        Console.WriteLine("ID: " & employeeId.ToString())
        Console.WriteLine("Name: " & employeeName)
        Console.WriteLine("Salary: $" & salary.ToString("N2"))
        Console.WriteLine("Hired: " & hireDate.ToShortDateString())
    End Sub
End Module
VB .NET

型付けされた各プロパティ(IntValue, StringValue, DecimalValue, DateTimeValue)は、基礎となるセルの値から自動的に変換を処理します。 Text プロパティは、Excel アプリケーションで表示されているとおりの表示値を返し、汎用的な Value プロパティは、生のデータ オブジェクトを返します。 Excelの数式を含むセルに対して、IronXLは結果を計算し、計算値を返すので、追加のコードなしで数式の結果を取り出すことができます。

エクセルの行を繰り返し処理するにはどうすればよいですか?

複数のレコードを処理するには、エクセルのワークシートの行と列を繰り返し処理する必要があります。 IronXLの範囲構文はVB.NETのFor Eachループ構造でこれを簡単にします。 一度に何行でも処理するコードを書くことができます。

Imports IronXL
Imports System

Module Program
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        ' Loop through cells in column B to retrieve employee names
        Console.WriteLine("Employee List:")
        For Each cell In sheet("B2:B10")
            If Not String.IsNullOrEmpty(cell.Text) Then
                Console.WriteLine(" - " & cell.Text)
            End If
        Next
    End Sub
End Module
Imports IronXL
Imports System

Module Program
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        ' Loop through cells in column B to retrieve employee names
        Console.WriteLine("Employee List:")
        For Each cell In sheet("B2:B10")
            If Not String.IsNullOrEmpty(cell.Text) Then
                Console.WriteLine(" - " & cell.Text)
            End If
        Next
    End Sub
End Module
VB .NET

範囲構文 sheet("B2:B10")は、B2からB10までのセルを選択し、ループできる列挙可能なコレクションを返します。 String.IsNullOrEmptyチェックは、空のセルを優雅に処理し、コンソール出力の空行を防ぎます。 複数の列を持つ行全体を処理するには、入れ子のループを使用するか、行インデックスと列文字を組み合わせてセルにアクセスします。 ループを停止するタイミングを決定するために、行数を使用することもできます。

出力

VB.NET Reading Excel Files Using IronXL:A Step-by-Step Guide Without Microsoft Office:画像4 - エクセルの行出力

Rowsプロパティは、ワークシートのデータ範囲全体を行ごとに繰り返し処理することを可能にし、セル値の配列として各行にアクセスできるようにします。

Excelデータで計算を実行するにはどうすればよいですか?

IronXLには、手動でループを書くことなく一般的な計算を行うための集約関数が組み込まれています。 これらの関数はセル範囲に直接作用し、高度なクエリのためにLINQと統合します。 APIを使用することで、あらゆるスプレッドシートから統計データを簡単に取得することができます。

Imports IronXL
Imports System

Module Program
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        ' Calculate salary statistics from column D range
        Dim totalSalaries As Decimal = sheet("D2:D50").Sum()
        Dim highestSalary As Decimal = sheet("D2:D50").Max()
        Dim lowestSalary As Decimal = sheet("D2:D50").Min()
        ' Display the calculated results
        Console.WriteLine("Total Payroll: $" & totalSalaries.ToString("N2"))
        Console.WriteLine("Highest Salary: $" & highestSalary.ToString("N2"))
        Console.WriteLine("Lowest Salary: $" & lowestSalary.ToString("N2"))
    End Sub
End Module
Imports IronXL
Imports System

Module Program
    Sub Main()
        Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        ' Calculate salary statistics from column D range
        Dim totalSalaries As Decimal = sheet("D2:D50").Sum()
        Dim highestSalary As Decimal = sheet("D2:D50").Max()
        Dim lowestSalary As Decimal = sheet("D2:D50").Min()
        ' Display the calculated results
        Console.WriteLine("Total Payroll: $" & totalSalaries.ToString("N2"))
        Console.WriteLine("Highest Salary: $" & highestSalary.ToString("N2"))
        Console.WriteLine("Lowest Salary: $" & lowestSalary.ToString("N2"))
    End Sub
End Module
VB .NET

集計関数(Sum、Min、Max、Average)は、指定されたセルの範囲にわたって結果を計算します。 これらのメソッドは自動的に空のセルをスキップし、数値変換を処理するため、給与計算、在庫合計、統計分析をアプリケーションに簡単に実装できます。

完全な従業員データ リーダーを構築するにはどうすればよいですか?

従業員のスプレッドシートをロードし、ループで各レコードを処理し、適切なエラー処理でフォーマットされた出力を表示する、実用的なアプリケーションの例を示します。 このコードは、完全なデータ抽出システムの作成方法を示しています。

Imports IronXL
Imports System

Module EmployeeDataReader
    Sub Main()
        Try
            ' Load the employee Excel workbook from path
            Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
            Dim sheet As WorkSheet = workbook.DefaultWorkSheet
            Console.WriteLine("=== Employee Data Report ===")
            Console.WriteLine()
            ' Process each employee row (skip header in first row)
            Dim rowNumber As Integer = 2
            Dim totalSalary As Decimal = 0
            Dim employeeCount As Integer = 0
            Do While Not String.IsNullOrEmpty(sheet("A" & rowNumber.ToString()).StringValue)
                ' Retrieve data from each column in the row
                Dim id As Integer = sheet("A" & rowNumber.ToString()).IntValue
                Dim name As String = sheet("B" & rowNumber.ToString()).StringValue
                Dim department As String = sheet("C" & rowNumber.ToString()).StringValue
                Dim salary As Decimal = sheet("D" & rowNumber.ToString()).DecimalValue
                ' Display formatted employee record
                Console.WriteLine("ID: " & id.ToString() & " " & name & " " & department & " $" & salary.ToString("N2"))
                totalSalary += salary
                employeeCount += 1
                rowNumber += 1
            Loop
            Console.WriteLine()
            Console.WriteLine("Total Employees: " & employeeCount.ToString())
            Console.WriteLine("Total Payroll: $" & totalSalary.ToString("N2"))
        Catch ex As Exception
            Console.WriteLine("Error reading Excel file: " & ex.Message)
        End Try
    End Sub
End Module
Imports IronXL
Imports System

Module EmployeeDataReader
    Sub Main()
        Try
            ' Load the employee Excel workbook from path
            Dim workbook As WorkBook = WorkBook.Load("Employees.xlsx")
            Dim sheet As WorkSheet = workbook.DefaultWorkSheet
            Console.WriteLine("=== Employee Data Report ===")
            Console.WriteLine()
            ' Process each employee row (skip header in first row)
            Dim rowNumber As Integer = 2
            Dim totalSalary As Decimal = 0
            Dim employeeCount As Integer = 0
            Do While Not String.IsNullOrEmpty(sheet("A" & rowNumber.ToString()).StringValue)
                ' Retrieve data from each column in the row
                Dim id As Integer = sheet("A" & rowNumber.ToString()).IntValue
                Dim name As String = sheet("B" & rowNumber.ToString()).StringValue
                Dim department As String = sheet("C" & rowNumber.ToString()).StringValue
                Dim salary As Decimal = sheet("D" & rowNumber.ToString()).DecimalValue
                ' Display formatted employee record
                Console.WriteLine("ID: " & id.ToString() & " " & name & " " & department & " $" & salary.ToString("N2"))
                totalSalary += salary
                employeeCount += 1
                rowNumber += 1
            Loop
            Console.WriteLine()
            Console.WriteLine("Total Employees: " & employeeCount.ToString())
            Console.WriteLine("Total Payroll: $" & totalSalary.ToString("N2"))
        Catch ex As Exception
            Console.WriteLine("Error reading Excel file: " & ex.Message)
        End Try
    End Sub
End Module
VB .NET

この例では、完全なデータ抽出ワークフローを示します。 Do Whileループは、A列で空のセルに出会うまで継続するので、行数が変化するスプレッドシートにも柔軟に対応できます。 各反復は、複数の列から従業員情報を抽出し、給与の合計を累積します。 Try-Catchブロックは、ファイルがない、データが壊れているなどの一般的な問題を処理し、アプリケーションがクラッシュするのを防ぎます。

出力

VB.NET Reading Excel Files Using IronXL:A Step-by-Step Guide Without Microsoft Office:画像5 - 従業員データの出力

また、VB.NETでワークシートのセルにプログラムでデータを挿入することもできます。 たとえば、新しい従業員レコードを追加するには、次のようにします:

sheet("A10").Value = 1010 ' ID inserted
sheet("B10").Value = "Jane Doe" ' Name inserted
sheet("C10").Value = "Finance" ' Department inserted
sheet("D10").Value = 75000 ' Salary inserted
workbook.Save()
sheet("A10").Value = 1010 ' ID inserted
sheet("B10").Value = "Jane Doe" ' Name inserted
sheet("C10").Value = "Finance" ' Department inserted
sheet("D10").Value = 75000 ' Salary inserted
workbook.Save()
VB .NET

これは、VB.NETコードを使用して、新しいデータを特定のセルに挿入する方法を示しています。

CSVファイルの場合、標準のLoadメソッドの代わりにWorkBook.LoadCSV("data.csv")を使用すると、カンマ区切り形式の解析が最適化されます。 抽出されたExcelデータは、VB.NETアプリケーションのデータベース、レポート、その他のビジネスロジックと簡単に統合できます。 また、DataTableまたは配列に、取得した値を入力してさらに処理することもできます。

Windowsフォームの統合:同じコードがWindowsフォームアプリケーションで動作します。 ファイルをロードするボタンとデータを表示するボタンの2つを持つフォームを作成し、クリックイベントを処理します:

Imports IronXL
Imports System.Windows.Forms

Public Class Form1
    Private workbook As WorkBook

    Private Sub btnLoad_Click(ByVal sender As Object, ByVal e As EventArgs)
        workbook = WorkBook.Load("Employees.xlsx")
        MessageBox.Show("Excel file loaded successfully!")
    End Sub

    Private Sub btnDisplay_Click(ByVal sender As Object, ByVal e As EventArgs)
        If workbook IsNot Nothing Then
            Dim sheet As WorkSheet = workbook.DefaultWorkSheet
            Dim name As String = sheet("B2").StringValue
            MessageBox.Show("First Employee: " & name)
        End If
    End Sub
End Class
Imports IronXL
Imports System.Windows.Forms

Public Class Form1
    Private workbook As WorkBook

    Private Sub btnLoad_Click(ByVal sender As Object, ByVal e As EventArgs)
        workbook = WorkBook.Load("Employees.xlsx")
        MessageBox.Show("Excel file loaded successfully!")
    End Sub

    Private Sub btnDisplay_Click(ByVal sender As Object, ByVal e As EventArgs)
        If workbook IsNot Nothing Then
            Dim sheet As WorkSheet = workbook.DefaultWorkSheet
            Dim name As String = sheet("B2").StringValue
            MessageBox.Show("First Employee: " & name)
        End If
    End Sub
End Class
VB .NET

この例では、ByVal sender As ObjectByVal e As EventArgsパラメータを持つPrivate Subイベントハンドラが、どのようにIronXLをデスクトップフォームに統合するかを示しています。 End Classによるクラス構造は、標準的なVB.NETパターンに従っています。

出力

VB.NET Reading Excel Files Using IronXL:A Step-by-Step Guide Without Microsoft Office:画像6 - Windowsフォームの出力</a

結論

IronXLはVB.NETによるExcelファイルの読み込みを複雑なInteropの課題から簡単なコードに変換します。 ワークブックの読み込み、入力されたセル値の抽出、行と列の反復、計算の実行はすべて、WindowsデスクトップまたはサーバーにMicrosoft Officeをインストールすることなく、わずか数行の直感的な構文で行うことができます。 コンソールアプリケーション、ボタン付きWindowsフォーム、ASPX Webページのいずれを構築する場合でも、同じコードを使用できます。

無料トライアルで、今すぐVB.NETプロジェクトにExcelデータ処理を実装してください。 IronXLをダウンロードし、完全なドキュメントExcelファイルの作成のような高度な機能を探求してください、複数フォーマットへのエクスポートセルのスタイル設定のような高度な機能。 IronXL API (https://ironsoftware.com/csharp/excel/object-reference/api/) は、.NETアプリケーションでスプレッドシートデータの読み取り、書き込み、作成、操作など、あらゆるExcel操作タスクのための完全なシステムを提供します。

よくある質問

IronXLとは何ですか?

IronXLは.NETライブラリで、開発者はMicrosoft Officeをインストールすることなく、XLSXやXLSなどの様々な形式のExcelファイルを読み、編集し、作成することができます。

IronXLはVB.NETでExcelファイルを読み込むためにどのように使用できますか?

IronXLはVB.NETで使用することができ、ファイルをWorkBookオブジェクトにロードすることでExcelファイルを読み込み、WorkBook内のWorkSheetsからデータにアクセスすることができます。

Excelファイルの読み込みにMicrosoft Office InteropではなくIronXLを選ぶ理由は何ですか?

IronXLは、Microsoft Officeをインストールする必要がないため、複雑な依存関係を排除し、デプロイ時の頭痛の種を減らすことができ、よりシンプルなデプロイプロセスを提供します。

IronXLはどのような種類のExcelファイルを処理できますか?

IronXLはXLSXやXLSを含む様々なExcelファイル形式を処理できるため、様々なデータ処理のニーズに対応できます。

IronXLは大規模なExcelファイルを効率的に処理できますか?

IronXLはパフォーマンスが最適化されており、大きなExcelファイルを効率的に処理することができます。

IronXLはVB.NET以外の.NET言語にも対応していますか?

IronXLはC#やF#などの他の.NET言語と互換性があり、異なる環境で働く開発者に柔軟性を提供します。

IronXL はMicrosoft OfficeがインストールされていないExcelファイルの読み込みをサポートしていますか?

IronXLの主な特徴の一つは、Microsoft Officeを必要とせずにExcelファイルを読み込めることです。

ビジネスソフトウェアにIronXLを使用するメリットは何ですか?

IronXLはExcelデータの読み取りと操作のための使いやすいメソッドを提供し、データ分析、レポート作成、Excelスプレッドシートとの統合を必要とするビジネスソフトウェアに最適です。

カーティス・チャウ
テクニカルライター

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

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