フッターコンテンツにスキップ
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. "インストール"をクリックします。

代わりに、次のコマンドを使用してPackage Manager Consoleからインストールすることもできます:

Install-Package IronXl.Excel

NuGet パッケージ マネージャーへ移動 VB.NET Excel統合のために正しいパッケージを見つけるために、Visual StudioのメニューでNuGetパッケージマネージャーに移動しています。

インストールが完了したら、コードを書き始める準備が整いました。 VB.NET ファイルの先頭に Imports IronXL を追加して、ライブラリのクラスをスコープに収めます。

NuGet パッケージ マネージャー UI で IronXL パッケージを検索

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

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

  1. 新しいExcelファイルをゼロから作成することは基本的な作業です。 これは、アプリケーションデータのエクスポートや日報の生成などのタスクに最適です。 実際の例を見てみましょう。

  2. 実用的な例を見てみましょう。 私たちには、Excelスプレッドシートにエクスポートしたい製品データのリストがあると想像してください。

次のコードは、List(Of Product)を取得して、その内容を新しく作成された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

動作の仕組み

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

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

既存のExcelファイルにデータを書き込むにはどうすればよいですか?

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

以下の例は、既存のスプレッドシートを開き、最後に使用された行を見つけ、新しいデータを追加する方法を示しています。

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

詳細な説明

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

  2. ワークブックの読み込み: WorkBook.Create() の代わりに WorkBook.Load("ProductReport.xlsx") を使用します。 これにより、指定されたファイルを開いてその内容を解析し、操作の準備ができた WorkBook オブジェクトに変換します。
  3. 挿入ポイントの見つけ方: データを追加する上での主要な課題は、書き始める場所を見つけることです。 IronXL は sheet.Info.LastRowUsed プロパティでこれを簡素化し、データを含む最後の Row オブジェクトを返します。 私たちは単にその行番号を取得し、1を加えて最初の空行を見つけます。
  4. データの追加: 新しいデータの書き込みプロセスは、前の例と同様です。 新しい Product リストを繰り返し処理し、新たに特定された空行にセルを入力します。
  5. 変更の保存: workbook.Save() メソッドは、メモリから修正されたワークブックで元のファイルを上書きします。 オリジナルを保持する必要がある場合は、コメント行に示されているように、SaveAs() を新しいファイル名と共に使用するだけです。

DataTable を Excel ワークシートに書き込む方法は?

SQL Server などのソースからデータを扱う開発者にとって、DataTable の内容を直接 Excel シートに書き込むことが一般的なタスクです。 IronXLは、行や列を手動でループさせる必要を排除する組み込みメソッドでこれを効率化します。

この例では、DataTable を入力して一度に新しい Excel ファイルにエクスポートする方法を示します。

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

sheet.Write() メソッドは、この目的に非常に効率的です。 これにより、DataTable 構造がワークシートにインテリジェントにマッピングされ、指定された場合は列ヘッダーも含まれます。 これはデータ駆動型アプリケーションにとって強力な機能であり、手動反復に比べて大幅な時間節約になります。 データのインポートとエクスポートの詳細については、異なるスプレッドシート形式の変換に関するチュートリアルをご覧ください。

Excelファイルに書き込むときに他に何ができますか?

データの書き込みは始まりに過ぎません。 IronXLは、包括的な機能を提供しています。以下その一例です: IronXLは、以下の包括的な機能を提供します。

  • 数式: プログラムで数式を設定し、計算します。 セルの Value に数式を割り当てることができます (例: sheet("C1").Value = "=SUM(A1:B1)") および IronXL が結果を計算します。
  • グラフ: 情報を視覚化するために、ワークシートのデータからさまざまな種類のグラフを作成します。
  • データ検証: 特定の範囲の数字やドロップダウンリストからの値のみを許可するように、セルにルールを適用します。
  • 条件付きフォーマット: セルの値に基づいてスタイリングを適用し、重要なデータ ポイントを強調します。
  • セキュリティと保護: アクセスを制御し、変更を防ぐために、パスワードでワークシートまたはワークブック全体を保護します。

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

今日からVB.NETでExcelファイルの書き込みを開始しましょう

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

より広範なニーズを持つ方には、IronXLがIron Suite for .NETにも含まれていることを思い出してください。

より広範なニーズを持つ方々のために、IronXLはIron Suite for .NETの一部であることを忘れないでください。 1 つのライセンスで、PDF、バーコード、OCR などを処理するための包括的なライブラリ セットにアクセスできるようになり、あらゆる .NET 開発者に優れた価値を提供します。

よくある質問

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)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me