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

VB.NETで簡単にExcelファイルに書き込む方法

従来、Office Interopを使用することがMicrosoft Excelのタスクを自動化するための事実上の選択肢とされていましたが、これには重大な欠点があります。パフォーマンスの問題やサーバー側の複雑さ、そしてMicrosoft Excelがマシンにインストールされている必要があるという条件です。

このガイドでは、VB.NETでExcelファイルを作成し書き込む方法についての現代的でより効率的なアプローチを示します。 私たちはIronXL for .NETを使用します。これは、開発者がOffice Interopに頼ることなく、Excelスプレッドシートを作成、読み取り、編集するのを助けるために特別に構築されたライブラリです。新しいファイルの作成、コレクションからのデータの書き込み、およびわずかな直感的なコード行で既存のドキュメントを変更する方法を見ていきます。

VB.NETでExcelを自動化するにはどうすればよいですか?

VB.NETプロジェクトでExcelファイルに書き込みを開始するには、まずIronXLライブラリを追加する必要があります。 このプロセスは簡単で、Visual Studio内で直接行うことができます。

まず、開発環境が準備されていることを確認してください:

  • Visual Studio 2022 以上。
  • .NET Framework 4.6.2以上または.NET Core/.NET 5+を対象としたアクティブプロジェクト。 IronXLはすべての最新.NETバージョンと互換性があります。.NET 9および10も含まれます。

次に、IronXL NuGetパッケージをインストールします:

  1. Visual StudioのNuGetパッケージマネージャーを開きます。
  2. パッケージIronXL.Excelを検索します。
  3. 「インストール」をクリックします。

または、次のコマンドを使用してパッケージマネージャーコンソールからインストールすることもできます。

Install-Package IronXL.Excel

<編集者への注意:以下の画像は古いプロジェクト作成とインストールのプロセスを示しています。 NuGetパッケージマネージャーUIで「IronXL.Excel」パッケージが選択されている更新されたスクリーンショットに置き換えることをお勧めします。> NuGet Package Managerに移動

Visual StudioのメニューからNuGet Package Managerに移動して、VB.NETのExcel統合に適したパッケージを見つけます。 インストールが完了したら、コードの記述を開始する準備が整います。

VB.NETファイルの先頭にImports IronXLを追加して、ライブラリのクラスをスコープに入れます。 NuGet Package Manager UIでIronXLパッケージを検索

VB.NETを使用してデータをExcelファイルに書き込むために必要なライブラリをインストールするためにIronXLパッケージを検索しています。

新しいExcelファイルを作成してデータを書き込むにはどうすればいいですか?

新しいExcelファイルをゼロから作成することは基本的なタスクです。

IronXLを使用すると、ワークブックを生成し、ワークシートを追加し、オブジェクトのコレクションなどあらゆるソースからセルにデータを入力できます。 これは、アプリケーションデータのエクスポートや日報の生成などのタスクに最適です。 実際の例を見てみましょう。

Excelスプレッドシートにエクスポートしたい製品データのリストがあると想像してください。 ### コレクションを新しいExcelワークシートに書き込む

次のコードは、List(Of Product)を取得して、その内容を新しく作成されたExcelファイルに書き込む方法を示します。

その仕組み

Imports IronXL
Imports System.Collections.Generic
Imports System.Linq

Public Class Product
    Public Property ID As Integer
    Public Property Name As String
    Public Property Price As Decimal
End Class

Module Program
    Sub Main(args As String())
        ' 1. Prepare a list of data to write to Excel.
        Dim products As New List(Of Product) From {
            New Product With {.ID = 1, .Name = "Laptop", .Price = 1200.50D},
            New Product With {.ID = 2, .Name = "Keyboard", .Price = 75.00D},
            New Product With {.ID = 3, .Name = "Mouse", .Price = 25.99D}
        }

        ' 2. Create a new Excel workbook and select the default worksheet.
        Dim workbook As WorkBook = WorkBook.Create()
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' 3. Write headers for our data.
        sheet("A1").Value = "Product ID"
        sheet("B1").Value = "Product Name"
        sheet("C1").Value = "Price"

        ' Style the header row.
        Dim headerRange = sheet.GetRange("A1:C1")
        headerRange.Style.Font.Bold = True
        headerRange.Style.SetBackgroundColor("#D3D3D3") ' Light Gray

        ' 4. Iterate through the product list and write data to subsequent rows.
        For i As Integer = 0 To products.Count - 1
            Dim product = products(i)
            Dim row = i + 2 ' Start from the second row
            sheet("A" & row).Value = product.ID
            sheet("B" & row).Value = product.Name
            sheet("C" & row).Value = product.Price
        Next

        ' 5. Apply currency formatting to the price column.
        Dim priceColumn = sheet.GetRange("C2:C" & products.Count + 1)
        priceColumn.Style.Format = "$#,##0.00"

        ' 6. Auto-size columns for better readability.
        sheet.Columns.AutoFit()

        ' 7. Save the newly created and populated workbook to a file.
        workbook.SaveAs("ProductReport.xlsx")

    End Sub
End Module
Imports IronXL
Imports System.Collections.Generic
Imports System.Linq

Public Class Product
    Public Property ID As Integer
    Public Property Name As String
    Public Property Price As Decimal
End Class

Module Program
    Sub Main(args As String())
        ' 1. Prepare a list of data to write to Excel.
        Dim products As New List(Of Product) From {
            New Product With {.ID = 1, .Name = "Laptop", .Price = 1200.50D},
            New Product With {.ID = 2, .Name = "Keyboard", .Price = 75.00D},
            New Product With {.ID = 3, .Name = "Mouse", .Price = 25.99D}
        }

        ' 2. Create a new Excel workbook and select the default worksheet.
        Dim workbook As WorkBook = WorkBook.Create()
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' 3. Write headers for our data.
        sheet("A1").Value = "Product ID"
        sheet("B1").Value = "Product Name"
        sheet("C1").Value = "Price"

        ' Style the header row.
        Dim headerRange = sheet.GetRange("A1:C1")
        headerRange.Style.Font.Bold = True
        headerRange.Style.SetBackgroundColor("#D3D3D3") ' Light Gray

        ' 4. Iterate through the product list and write data to subsequent rows.
        For i As Integer = 0 To products.Count - 1
            Dim product = products(i)
            Dim row = i + 2 ' Start from the second row
            sheet("A" & row).Value = product.ID
            sheet("B" & row).Value = product.Name
            sheet("C" & row).Value = product.Price
        Next

        ' 5. Apply currency formatting to the price column.
        Dim priceColumn = sheet.GetRange("C2:C" & products.Count + 1)
        priceColumn.Style.Format = "$#,##0.00"

        ' 6. Auto-size columns for better readability.
        sheet.Columns.AutoFit()

        ' 7. Save the newly created and populated workbook to a file.
        workbook.SaveAs("ProductReport.xlsx")

    End Sub
End Module
VB .NET

このコード例は、Excelの入力を自動化するためのIronXL APIの簡便性と強力さを示しています。

  1. データの準備:まず、エクスポートしたいデータを表す単純なProductクラスとList(Of Product)を用意します。

これは、データベースやその他のビジネスロジック層からデータを引き出すことをシミュレートしています。 2. ワークブックとワークシートの作成WorkBook.Create()で新しい空のExcelワークブックをメモリに生成します。 すべての新しいワークブックには自動的に1つのワークシートが含まれており、DefaultWorkSheetプロパティを通じてアクセスできます。 より複雑なドキュメントの場合、CreateWorkSheetメソッドを使ってさらにワークシートを追加できます。 3. データの書き込み:おなじみのA1スタイルの表記(例:sheet("A1"))を使用してセルにアクセスします。 .Valueプロパティは、セルの内容を設定または取得するために使用します。 IronXLは、数値、文字列、日付のデータ型変換を自動的に処理します。 4. スタイリングとフォーマット:IronXLは包括的なスタイリングAPIを提供しています。 例ではセル範囲を選択し、ヘッダーにボールドのフォーマットと背景色を適用しています。 Style.Formatプロパティを使って価格列に通貨形式を適用することもできます。これは、プロフェッショナルなレポートを作成するために不可欠な機能です。 スタイリングオプションの詳細については、StyleオブジェクトのAPIドキュメントをご覧ください。 5. ファイルの保存:最後に、workbook.SaveAs("ProductReport.xlsx")でメモリ内のワークブックをファイルシステムに書き込みます。 IronXLは.xlsx.xls.csv.tsvなどのさまざまな形式をサポートしており、データのエクスポート方法に柔軟性を持たせます。 ## 既存のExcelファイルにデータを書くにはどうすればいいですか?

新しいファイルを作成する必要はなく、既存のファイルにデータを追加する必要があることがよくあります。

これは、ログの記録やデータセットへのレコードの追加、またはレポートの更新によくあります。 IronXLは、新しいファイルを作成するのと同じくらい簡単にこのプロセスを実現できます。 次の例では、既存のスプレッドシートを開いて、最後に使用された行を見つけ、新しいデータを追加する方法を示します。

より深い説明

Imports IronXL
Imports System.Collections.Generic
Imports System.Linq

' (Assuming the Product class from the previous example is available)

Module Program
    Sub Main(args As String())
        ' Ensure the file from our previous example exists.
        If Not System.IO.File.Exists("ProductReport.xlsx") Then
            Console.WriteLine("Please run the first example to create ProductReport.xlsx")
            Return
        End If

        ' 1. Load the existing workbook from the file system.
        Dim workbook As WorkBook = WorkBook.Load("ProductReport.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' 2. Find the first empty row to append new data.
        ' The LastRowUsed property gives us the last row with data.
        Dim lastRow = sheet.Info.LastRowUsed
        Dim newRowIndex = lastRow.RowNumber + 1

        ' 3. Define the new data to be added.
        Dim newProducts As New List(Of Product) From {
            New Product With {.ID = 4, .Name = "Monitor", .Price = 350.00D},
            New Product With {.ID = 5, .Name = "Webcam", .Price = 99.99D}
        }

        ' 4. Loop through the new data and write it to the worksheet.
        For i As Integer = 0 To newProducts.Count - 1
            Dim product = newProducts(i)
            Dim currentRow = newRowIndex + i
            sheet("A" & currentRow).Value = product.ID
            sheet("B" & currentRow).Value = product.Name
            sheet("C" & currentRow).Value = product.Price
        Next

        ' 5. Re-apply formatting and auto-fit columns to include new data.
        Dim priceColumn = sheet.GetRange("C2:C" & sheet.Info.LastRowUsed.RowNumber)
        priceColumn.Style.Format = "$#,##0.00"
        sheet.Columns.AutoFit()

        ' 6. Save the changes back to the original file.
        workbook.Save()

        ' Or save as a new file to preserve the original.
        ' workbook.SaveAs("ProductReport_Updated.xlsx")
    End Sub
End Module
Imports IronXL
Imports System.Collections.Generic
Imports System.Linq

' (Assuming the Product class from the previous example is available)

Module Program
    Sub Main(args As String())
        ' Ensure the file from our previous example exists.
        If Not System.IO.File.Exists("ProductReport.xlsx") Then
            Console.WriteLine("Please run the first example to create ProductReport.xlsx")
            Return
        End If

        ' 1. Load the existing workbook from the file system.
        Dim workbook As WorkBook = WorkBook.Load("ProductReport.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' 2. Find the first empty row to append new data.
        ' The LastRowUsed property gives us the last row with data.
        Dim lastRow = sheet.Info.LastRowUsed
        Dim newRowIndex = lastRow.RowNumber + 1

        ' 3. Define the new data to be added.
        Dim newProducts As New List(Of Product) From {
            New Product With {.ID = 4, .Name = "Monitor", .Price = 350.00D},
            New Product With {.ID = 5, .Name = "Webcam", .Price = 99.99D}
        }

        ' 4. Loop through the new data and write it to the worksheet.
        For i As Integer = 0 To newProducts.Count - 1
            Dim product = newProducts(i)
            Dim currentRow = newRowIndex + i
            sheet("A" & currentRow).Value = product.ID
            sheet("B" & currentRow).Value = product.Name
            sheet("C" & currentRow).Value = product.Price
        Next

        ' 5. Re-apply formatting and auto-fit columns to include new data.
        Dim priceColumn = sheet.GetRange("C2:C" & sheet.Info.LastRowUsed.RowNumber)
        priceColumn.Style.Format = "$#,##0.00"
        sheet.Columns.AutoFit()

        ' 6. Save the changes back to the original file.
        workbook.Save()

        ' Or save as a new file to preserve the original.
        ' workbook.SaveAs("ProductReport_Updated.xlsx")
    End Sub
End Module
VB .NET

既存のファイルを変更する際は、論理的にロード - 編集 - 保存のパターンに従います。

  1. ワークブックの読み込みWorkBook.Create()の代わりに、WorkBook.Load("ProductReport.xlsx")を使用します。

これにより、指定されたファイルが開かれ、その内容が操作可能なWorkBookオブジェクトにパースされます。 2. 挿入ポイントの見つけ方:データを追加する際の主な課題は、どこから書き始めるかを見つけることです。 IronXLはsheet.Info.LastRowUsedプロパティを提供し、データを含む最後のRowオブジェクトを返します。 その行番号を取得し、一つ追加すれば最初の空の行を見つけることができます。 3. データの追加:新しいデータの書き込みのプロセスは、前の例と同じです。 新しいProductリストを反映した行にデータを入力します。 4. 変更の保存workbook.Save()メソッドは、メモリ内の修正されたワークブックで元のファイルを上書きします。 元のファイルを保持する必要がある場合は、コメントアウトされた行に示されているように、新しいファイル名を使用してSaveAs()を使用してください。 ## DataTableをExcelワークシートに書き込むにはどうすればよいですか?

SQL Serverなどのデータソースからのデータを扱う開発者にとって、DataTableの内容を直接Excelシートに書き込むことは一般的なタスクです。

IronXLは組み込みのメソッドを提供しており、行や列を手動でループする必要を排除しています。 この例では、DataTableを入力して、それを新しいExcelファイルにエクスポートする方法を示します。

この目的に非常に効率的なsheet.Write()メソッドを使用します。

Imports IronXL
Imports System.Data

Module Program
    Sub Main(args As String())
        ' 1. Create and populate a DataTable. This often comes from a database query.
        Dim dt As New DataTable("EmployeeData")
        dt.Columns.Add("EmployeeID", GetType(Integer))
        dt.Columns.Add("FullName", GetType(String))
        dt.Columns.Add("Department", GetType(String))
        dt.Columns.Add("HireDate", GetType(Date))

        dt.Rows.Add(101, "John Smith", "Sales", New Date(2022, 5, 20))
        dt.Rows.Add(102, "Jane Doe", "Engineering", New Date(2021, 8, 15))
        dt.Rows.Add(103, "Peter Jones", "Marketing", New Date(2023, 1, 10))

        ' 2. Create a new workbook.
        Dim workbook As WorkBook = WorkBook.Create()
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Employees")

        ' 3. Write the DataTable to the worksheet starting at cell A1.
        ' The second parameter (True) indicates that column headers should be included.
        sheet.Write(dt, "A1", True)

        ' 4. Apply some styling for a more polished look.
        sheet.Columns.AutoFit()
        Dim headerRange = sheet.GetRange("A1:D1")
        headerRange.Style.Font.Bold = True
        headerRange.Style.SetBackgroundColor("#C5D9F1") ' Light Blue

        Dim dateColumn = sheet.GetRange("D2:D" & dt.Rows.Count + 1)
        dateColumn.Style.Format = "yyyy-mm-dd"

        ' 5. Save the workbook.
        workbook.SaveAs("EmployeeDatabaseExport.xlsx")
    End Sub
End Module
Imports IronXL
Imports System.Data

Module Program
    Sub Main(args As String())
        ' 1. Create and populate a DataTable. This often comes from a database query.
        Dim dt As New DataTable("EmployeeData")
        dt.Columns.Add("EmployeeID", GetType(Integer))
        dt.Columns.Add("FullName", GetType(String))
        dt.Columns.Add("Department", GetType(String))
        dt.Columns.Add("HireDate", GetType(Date))

        dt.Rows.Add(101, "John Smith", "Sales", New Date(2022, 5, 20))
        dt.Rows.Add(102, "Jane Doe", "Engineering", New Date(2021, 8, 15))
        dt.Rows.Add(103, "Peter Jones", "Marketing", New Date(2023, 1, 10))

        ' 2. Create a new workbook.
        Dim workbook As WorkBook = WorkBook.Create()
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Employees")

        ' 3. Write the DataTable to the worksheet starting at cell A1.
        ' The second parameter (True) indicates that column headers should be included.
        sheet.Write(dt, "A1", True)

        ' 4. Apply some styling for a more polished look.
        sheet.Columns.AutoFit()
        Dim headerRange = sheet.GetRange("A1:D1")
        headerRange.Style.Font.Bold = True
        headerRange.Style.SetBackgroundColor("#C5D9F1") ' Light Blue

        Dim dateColumn = sheet.GetRange("D2:D" & dt.Rows.Count + 1)
        dateColumn.Style.Format = "yyyy-mm-dd"

        ' 5. Save the workbook.
        workbook.SaveAs("EmployeeDatabaseExport.xlsx")
    End Sub
End Module
VB .NET

これにより、DataTableの構造が賢くワークシートにマッピングされ、指定された場合はカラムヘッダーも含まれます。 これはデータ駆動のアプリケーションにとって強力な機能であり、手動での反復に比べて大幅な時間の節約になります。 データのインポートとエクスポートの詳細については、異なるスプレッドシート形式の変換に関するチュートリアルをご覧ください。 ## Excelファイルを書き込む際に他に何ができるか?

データを書き込むことは始まりにすぎません。

堅牢なVB.NET Excelライブラリは、あらゆるスプレッドシートタスクを自動化するためのフルセットの機能を提供するべきです。 IronXLは、包括的な機能を提供しています。以下その一例です: - 数式:プログラムにより数式を設定し計算します。

セルのValueに数式を割り当て(例:sheet("C1").Value = "=SUM(A1:B1)")、IronXLが結果を計算します。 - チャート:情報を視覚化するためにワークシートのデータからさまざまなタイプのチャートを生成します。

  • データ検証:特定の範囲内の数値やドロップダウンリストからの値のみを許可するなど、セルにルールを適用します。
  • 条件付き書式:値に基づいてセルにスタイリングを適用し、重要なデータポイントを強調します。
  • セキュリティと保護:ワークシートやワークブック全体をパスワードで保護してアクセスを制御し、変更を防ぎます。 これらの機能により、.NETアプリケーション内での複雑なレポート生成とデータ分析ワークフローの完全な自動化が可能になります。

VB.NETでのExcelファイルへの書き込みを今すぐ始めましょう

示されているように、最新のライブラリであるIronXLを使用することでVB.NETでのExcelファイルへのデータ書き込みは大幅に簡素化されます。

Office Interopの複雑さと依存関係を避けることで、より信頼性が高く、パフォーマンスが優れ、展開しやすいアプリケーションを構築できます。 Excelファイルをゼロから作成する、既存のレポートにデータを追加する、またはDataTableをエクスポートする必要がある場合、IronXLは効率的に仕事を完了するための直感的で強力なAPIを提供します。 無料トライアルライセンスを試してみてください。

今日あなたのプロジェクトでIronXLを無料トライアルで使用開始。

最初のステップ:
green arrow pointer

You can download IronXL and try it out with a free trial license to see how easily it can be integrated into your projects.

単一のライセンスで、PDF、バーコード、OCRなどを処理するための包括的なライブラリセットにアクセスでき、.NET開発者にとって非常に大きな価値を提供します。 With a single license, you gain access to a comprehensive set of libraries for handling PDFs, barcodes, OCR, and more, providing exceptional value for any .NET developer.

よくある質問

VB.NET で Office インターロップを使用せずに Excel ファイルに書き込むにはどうすればよいですか?

Office インターロップを必要とせずに、IronXL ライブラリを使用して VB.NET で Excel ファイルに書き込むことができます。IronXL を使用すると、Microsoft Excel をインストールしなくても、Excel ファイルをシームレスに作成、読み取り、および操作できます。

Excel 自動化のために Office インターロップよりも IronXL を使用することの利点は何ですか?

IronXL は Office インターロップよりも大幅な利点を提供します。例としては、パフォーマンスの向上、簡単なデプロイ、および Microsoft Excel をインストールすることなくサーバー上で実行する機能などがあります。.NET アプリケーションの Excel 自動化タスクを簡素化します。

VB.NET プロジェクトで Excel ファイルを操作するために IronXL をインストールする方法は?

Visual Studio 内の NuGet パッケージ マネージャーを使用して、VB.NET プロジェクトに IronXL をインストールします。IronXL.Excel を検索してインストールします。あるいは、パッケージ マネージャー コンソールで次のコマンドを使用します: Install-Package IronXL.Excel

VB.NET で新しい Excel ファイルを作成してデータを挿入する方法は?

IronXL を使用して、新しい Excel ファイルを WorkBook.Create() を呼び出して作成できます。ワークシートにアクセスし、sheet("A1").Value = "Example Data" のように A1 形式を使用してデータを挿入します。SaveAs() メソッドを使用してファイルを保存します。

IronXL を使用して既存の Excel ファイルにデータを追加することは可能ですか?

IronXL を使用して既存の Excel ファイルにデータを追加するには、WorkBook.Load("filename.xlsx") でブックを読み込みます。sheet.Info.LastRowUsed を使用して次の空行を決定し、新しいデータを挿入します。workbook.Save() を使用して変更を保存します。

VB.NET で Excel シートに DataTable をエクスポートすることは可能ですか?

はい、IronXL は DataTable を Excel シートにエクスポートするのを簡素化します。sheet.Write() メソッドを使用して、ワークシートに効率的にテーブル全体を転送します。

IronXL で取り扱うことのできる Excel ファイル形式は何ですか?

IronXL は .xlsx.xls.csv.tsv を含む複数の Excel ファイル形式をサポートしており、さまざまな種類のスプレッドシートデータを柔軟に扱うことができます。

IronXL を使用して Excel セルをフォーマットし、数式を使用することはできますか?

はい、IronXL は豊富なフォーマットと数式のサポートを提供しています。フォント、色、境界、数字の形式をプログラムで調整し、"=SUM(A1:A10)" のような Excel 数式を設定して計算を行うことができます。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。

Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。

彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。