VB .NET でExcelファイルを読み取る&作成する(コード例チュートリアル)

チャクニット・ビン
チャクニット・ビン
2020年6月17日
更新済み 2024年10月20日
共有:
This article was translated from English: Does it need improvement?
Translated
View the article in English

開発者は、VB .NETのExcelファイルにアクセスするためのスムーズでシンプルな方法を必要としています。 このウォークスルーでは、IronXLを使用してVB dotnetのExcelファイルを読み取り、プロジェクトで使用するすべてのデータにアクセスします。 私たちは、VB.NET Excelプログラミングを使用して、すべての形式(.xls.xlsx.csv.tsv)でスプレッドシートを作成する方法、セルスタイルを設定する方法、およびデータを挿入する方法について学びます。


ステップ 1

1. Excel for VB.NET ライブラリ

DLLダウンロードまたはNuGetを使用してIronXL Excel for VB.NETライブラリを取得します。 IronXLは、VB.NETプロジェクトでExcelデータに迅速にアクセスするためのステップ1であり、このチュートリアルで使用するものです(開発用に無料)。

Install-Package IronXL.Excel

チュートリアル方法

2. VB.NETでExcelファイルを作成

IronXLは、VB.NETプロジェクトでExcel(.xlsx形式)ファイルを作成する最も簡単な方法を提供します。 次に、データを挿入し、フォントスタイルや枠線などのセルプロパティを設定することができます。

2.1. Excelファイルの作成

最初にWorkBookを作成しましょう:

Dim wb As New WorkBook
Dim wb As New WorkBook
VB.NET

上記のコードは、新しいExcelファイルを作成するためのものです。デフォルトで、その拡張子は.xlsxです。

2.2. XLSファイルを作成する

拡張子が.xlsのファイルを作成したい場合は、このコードを使用できます。

Dim wb As New WorkBook(ExcelFileFormat.XLS)
Dim wb As New WorkBook(ExcelFileFormat.XLS)
VB.NET

2.3. ワークシートを作成する

WorkBookを作成した後、ExcelのWorkSheetは次のように作成できます。

Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
VB.NET

上記のコードは、WorkBook wb 内に sheet1 という名前の新しい WorkSheet ws1 を作成します。

2.4. 複数のワークシートを作成

同じ方法で複数のWorkSheetsを作成できます。

Dim ws2 As WorkSheet = wb.CreateWorkSheet("Sheet2")
Dim ws3 As WorkSheet = wb.CreateWorkSheet("Sheet3")
Dim ws2 As WorkSheet = wb.CreateWorkSheet("Sheet2")
Dim ws3 As WorkSheet = wb.CreateWorkSheet("Sheet3")
VB.NET

3. ワークシートにデータを挿入

セルにデータを挿入する

さて、以下のように WorkSheet のセルにデータを簡単に挿入できます:

 worksheet("CellAddress").Value = "MyValue"
 worksheet("CellAddress").Value = "MyValue"
VB.NET

例えば、ワークシートws1のデータを次のように挿入できます:

ws1("A1").Value = "Hello World"
ws1("A1").Value = "Hello World"
VB.NET

上記のコードは、ワークシートws1A1セルにHello Worldを書き込みます。

3.2. 範囲にデータを挿入

次のように範囲関数を使用して多くのセルにデータを書き込むことも可能です:

ws1("A3:A8").Value = "NewValue"
ws1("A3:A8").Value = "NewValue"
VB.NET

上記のコードは、ワークシートws1のセルA3からA8までにNewValueを書き込みます。

3.3. ワークシートの作成と編集の例

新しい Excel ファイル Sample.xlsx を作成し、上記で学習したコードを実演するためにいくつかのデータを挿入します。

/**
Create and Edit Excel
anchor-create-and-edit-worksheets-example
**/
Imports IronXL
Sub Main()
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ws1("B1:B8").Value = "RangeValue"
    wb.SaveAs("Sample.xlsx")
End Sub
/**
Create and Edit Excel
anchor-create-and-edit-worksheets-example
**/
Imports IronXL
Sub Main()
    Dim wb As New WorkBook(ExcelFileFormat.XLSX)
    Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
    ws1("A1").Value = "Hello"
    ws1("A2").Value = "World"
    ws1("B1:B8").Value = "RangeValue"
    wb.SaveAs("Sample.xlsx")
End Sub
VB.NET

注意: デフォルトでは、新しいExcelファイルはプロジェクトの bin>Debug フォルダーに作成されます。カスタムパスに新しいファイルを作成したい場合は、次のようにします:

wb.SaveAs(@"E:\IronXL\Sample.xlsx")

こちらが新しく作成したExcelファイルsample.xlsxのスクリーンショットです:

Doc5 1 related to 3.3. ワークシートの作成と編集の例

VB.NETアプリケーションでIronXLを使用してExcelファイルを作成することがいかに簡単であるかが明らかです。


4. VB.NETでExcelファイルを読み取る

IronXLは、VB dotnetプロジェクトでExcel(.xlsx)ファイルを読み取るためのシンプルなアプローチも提供します。 この目的のためには、単にExcelドキュメントを取得し、プロジェクトにロードし、そのデータを読み込み、必要に応じて使用してください。

以下の手順に従ってください:

4.1. プロジェクト内でExcelファイルにアクセスする

WorkBookは、Excelファイルとその機能へのフルアクセスを提供するIronXLのクラスです。 たとえば、Excelファイルにアクセスしたい場合、単純に以下を使用します:

WorkBook wb = WorkBook.Load("sample.xlsx") 'Excel file path
WorkBook wb = WorkBook.Load("sample.xlsx") 'Excel file path
VB.NET

上記のコードでは、WorkBook.Load()関数がwbsample.xlsxをロードします。 wbに対して任意のタイプの関数を実行するには、Excelファイルの特定のWorkSheetにアクセスします。

4.2. 特定のWorkSheetにアクセス

Excelの特定のシートにアクセスするには、WorkSheetクラスを使用します。これは、以下のさまざまな方法で使用できます。

4.2.1. シート名による検索

Dim ws As WorkSheet = WorkBook.GetWorkSheet("sheet1") 'by sheet name
Dim ws As WorkSheet = WorkBook.GetWorkSheet("sheet1") 'by sheet name
VB.NET

wb は上記のセクションで宣言された WorkBook です。

シートインデックスによる

 Dim ws As WorkSheet = WorkBook.WorkSheets(0) 'by sheet index
 Dim ws As WorkSheet = WorkBook.WorkSheets(0) 'by sheet index
VB.NET

4.2.3. デフォルトシート

Dim ws As WorkSheet = workbook.DefaultWorkSheet() 'for the default sheet: 
Dim ws As WorkSheet = workbook.DefaultWorkSheet() 'for the default sheet: 
VB.NET

4.2.4. 最初のシート

Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first sheet:
Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first sheet:
VB.NET

4.2.1. 最初のシートまたはデフォルトシート

Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first or default sheet:
Dim sheet As WorkSheet = workbook.WorkSheets.FirstOrDefault() 'for the first or default sheet:
VB.NET

Excelシートwsを取得した後、対応するExcelファイルのワークシートから任意のタイプのデータを取得し、すべてのExcel機能を実行できます。


ワークシートからデータにアクセスする

データは、ExcelSheet ws からこの方法でアクセスできます:

Dim int_Value As Integer = sheet("A2").IntValue 'for integer
Dim str_value As String = sheet("A2").ToString() 'for string
Dim int_Value As Integer = sheet("A2").IntValue 'for integer
Dim str_value As String = sheet("A2").ToString() 'for string
VB.NET

特定の列からのデータ

特定の列の複数のセルからデータを取得するには、次の方法を使用します:

For Each cell In sheet("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)       
Next cell
For Each cell In sheet("A2:A10")
    Console.WriteLine("value is: {0}", cell.Text)       
Next cell
VB.NET

セルA2からA10までの値を表示します。 以下に、上記の議論全体のコード例を示します。

/**
Load and Edit Values
anchor-data-from-specific-column
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    For Each cell In ws("A2:A10")
        Console.WriteLine("value is: {0}", cell.Text)
    Next
    Console.ReadKey() 
End Sub
/**
Load and Edit Values
anchor-data-from-specific-column
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
    For Each cell In ws("A2:A10")
        Console.WriteLine("value is: {0}", cell.Text)
    Next
    Console.ReadKey() 
End Sub
VB.NET

次の出力が表示されます:

Doc3 Input1 related to 特定の列からのデータ

そして、ExcelファイルSample.xlsxのスクリーンショットを見ることができます。

Doc3 1 related to 特定の列からのデータ

データに対して関数を実行する

次の方法で、Sum、Min、Max などの集計関数を適用することで、Excel WorkSheet からフィルターされたデータに簡単にアクセスできます:

Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
VB.NET

Excel の集計関数についてはこちらで詳しく読むことができます。

/**
Apply Functions to Data
anchor-perform-functions-on-data
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

    Dim sum As Decimal = ws("G2:G10").Sum()
    Dim min As Decimal = ws("G2:G10").Min()
    Dim max As Decimal = ws("G2:G10").Max()

    Console.WriteLine("Sum is: {0}", sum)
    Console.WriteLine("Min is: {0}", min)
    Console.WriteLine("Max is: {0}", max)
    Console.ReadKey()
End Sub
/**
Apply Functions to Data
anchor-perform-functions-on-data
**/
Imports IronXL
Sub Main()
    Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
    Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()

    Dim sum As Decimal = ws("G2:G10").Sum()
    Dim min As Decimal = ws("G2:G10").Min()
    Dim max As Decimal = ws("G2:G10").Max()

    Console.WriteLine("Sum is: {0}", sum)
    Console.WriteLine("Min is: {0}", min)
    Console.WriteLine("Max is: {0}", max)
    Console.ReadKey()
End Sub
VB.NET

このコードは、この表示を提供します:

Doc3 Output2 related to データに対して関数を実行する

そしてこのExcelファイルSample.xlsx

Doc3 2 related to データに対して関数を実行する

リンクされた記事でExcelを読む方法について詳しく学ぶことができます。


チュートリアル クイック アクセス

ドキュメント APIリファレンス

IronXLのドキュメントAPIリファレンスにアクセスして、VB.NETプロジェクトでExcelを操作する簡単な方法を見つけましょう。機能、関数、クラスなどのリストを見つけることができます。

ドキュメント APIリファレンス
Documentation related to チュートリアル クイック アクセス
チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。