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

VB.NETでデータセットをExcelに変換する方法

DataSetをExcelワークシートファイルに変換することは、レポートの生成、データベースクエリのエクスポート、データのバックアップの作成などを行うVB.NETアプリケーションにおいて一般的な要件です。 従来のOffice Interopを使用した方法は、Excelのインストールと複雑なCOM参照が必要ですが、IronXLは、Microsoft Officeに依存しない効率的なアプローチを提供します。

このチュートリアルでは、DataTableの行を含むDataSetをVB.NETでEfficientにExcelファイルに変換する方法を説明し、書式設定オプションと複数のファイル形式のサポートを提供します。

なぜDataSetからExcelへの変換が重要なのか?

.NETのDataSetは、行、列、および関係を持つ1つ以上のDataTableを含むメモリ内のデータキャッシュを表します。 これらのDataSetをExcelに変換することで、以下が可能になります:

  • ビジネスレポート: データベースクエリをステークホルダーのために書式化されたスプレッドシートに変換する
  • データのアーカイブ: アプリケーションデータを長期的に保存し分析するためにエクスポートする
  • クロスプラットフォーム互換性: あなたのアプリケーションにアクセスできないユーザーとデータを共有する
  • 可視化の強化: Excelの組み込みのチャート作成および分析ツールを活用する

IronXLは、Excelのサーバーまたは開発マシンへのインストールを必要とせずに、変換を処理する直感的なAPIを提供することでこのプロセスを簡素化します。このライブラリは、.NET Framework 4.6.2以降、.NET Core、.NET 5以降をサポートしており、Linuxコンテナやクラウド環境へのデプロイを含む現代のアプリケーションに適しています。 サポートされるプラットフォームの詳細については、IronXL機能ページをご覧ください。

VB.NETプロジェクトでIronXLを始めるには?

VB.NETまたは.NETコードプロジェクトでIronXLを設定するのは数分で完了します。 Visual Studioを開き、プロジェクトに移動して、NuGetパッケージマネージャーを介してIronXLをインストールします。

パッケージマネージャーコンソールを使用して、次を実行します:

Install-Package IronXL.Excel

またはNuGetパッケージマネージャーUIで「IronXL.Excel」を検索し、インストールをクリックします。 パッケージは自動的にダウンロードされ、必要な依存関係がすべて設定されます。 さらにインストールオプションについては、IronXLインストールガイドをご覧ください。

インストールが完了すると、VB.NETファイルにIronXL名前空間を追加してください。

Imports IronXL
Imports System.Data
Imports IronXL
Imports System.Data
VB .NET

これで準備が整い、DataSetをExcelファイルに変換し始めることができます。

VB.NETでDataSetをExcelに変換する方法は?

サンプルデータを含むDataSetを作成して、それをExcelファイルにエクスポートする実用的な例から始めましょう:

' Create a sample DataSet with product information
Dim dataSet As New DataSet("ProductData")
' Create a DataTable object for products, column headers
Dim productsTable As New DataTable("Products")
productsTable.Columns.Add("ProductID", GetType(Integer))
productsTable.Columns.Add("ProductName", GetType(String))
productsTable.Columns.Add("Price", GetType(Decimal))
productsTable.Columns.Add("InStock", GetType(Boolean))
' Add sample data to export DataTable
productsTable.Rows.Add(1, "Laptop", 999.99, True)
productsTable.Rows.Add(2, "Mouse", 19.99, True)
productsTable.Rows.Add(3, "Keyboard", 49.99, False)
productsTable.Rows.Add(4, "Monitor", 299.99, True)
productsTable.Rows.Add(5, "Headphones", 79.99, True)
' Add the DataTable table to the DataSet
dataSet.Tables.Add(productsTable)
' Export DataSet to Excel using IronXL
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
' Save the Excel file
workBook.SaveAs("ProductData.xlsx")
' Create a sample DataSet with product information
Dim dataSet As New DataSet("ProductData")
' Create a DataTable object for products, column headers
Dim productsTable As New DataTable("Products")
productsTable.Columns.Add("ProductID", GetType(Integer))
productsTable.Columns.Add("ProductName", GetType(String))
productsTable.Columns.Add("Price", GetType(Decimal))
productsTable.Columns.Add("InStock", GetType(Boolean))
' Add sample data to export DataTable
productsTable.Rows.Add(1, "Laptop", 999.99, True)
productsTable.Rows.Add(2, "Mouse", 19.99, True)
productsTable.Rows.Add(3, "Keyboard", 49.99, False)
productsTable.Rows.Add(4, "Monitor", 299.99, True)
productsTable.Rows.Add(5, "Headphones", 79.99, True)
' Add the DataTable table to the DataSet
dataSet.Tables.Add(productsTable)
' Export DataSet to Excel using IronXL
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
' Save the Excel file
workBook.SaveAs("ProductData.xlsx")
VB .NET

このコードは製品情報を含むDataSetを作成し、直接Excelファイルに変換します。LoadWorkSheetsFromDataSetメソッドは、DataSet内の各DataTableのワークシートを自動的に作成します。 結果として得られるExcelファイルは、DataTable構造から派生した書式設定済みのデータを含んでいます。

出力

VB.NETでDataSetをExcelに変換する方法:図8 - Excel出力

Excelファイルを操作して異なる形式で保存することもできます:

' Save as legacy Excel versions format
workBook.SaveAs("ProductData.xls")
' Save as CSV (comma-separated values)
workBook.SaveAsCsv("ProductData.csv")
' Save as TSV (tab-separated values)
workBook.SaveAs("ProductData.tsv")
' Save as legacy Excel versions format
workBook.SaveAs("ProductData.xls")
' Save as CSV (comma-separated values)
workBook.SaveAsCsv("ProductData.csv")
' Save as TSV (tab-separated values)
workBook.SaveAs("ProductData.tsv")
VB .NET

それぞれの形式には特定の使用ケースがあります:これには、最新のExcelとの互換性のためのXLSXファイル形式、レガシーシステム用のXLS、および他のアプリケーションやデータベースとの汎用的なデータ交換のためのCSV/TSVが含まれます。 スプレッドシート形式間の変換について詳しく学びましょう。

データベースデータを直接Excelファイル形式にエクスポートする方法は?

実際のアプリケーションはよくSQLデータベースからデータをエクスポートする必要があります。 データベースをクエリしてその結果をExcelにエクスポートする方法は以下の通りです:

Dim connectionString As String = "Data Source=server;Initial Catalog=SampleDB;Integrated Security=True"
Dim query As String = "SELECT OrderID, CustomerName, OrderDate, TotalAmount FROM Orders WHERE OrderDate >= '2024-01-01'"
Dim dataSet As New DataSet()
' Populate DataSet from database
Using connection As New SqlConnection(connectionString)
    Using adapter As New SqlDataAdapter(query, connection)
        adapter.Fill(dataSet, "Orders")
    End Using
End Using
' Create Excel workbook and load data
Dim workBook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
' Auto-size columns for better readability
Dim worksheet As WorkSheet = workBook.WorkSheets(0)
For i As Integer = 0 To worksheet.Columns.Count - 1
    worksheet.AutoSizeColumn(i)
Next
' Save with timestamp in filename
Dim fileName As String = $"OrdersExport_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx"
workBook.SaveAs(fileName)
Dim connectionString As String = "Data Source=server;Initial Catalog=SampleDB;Integrated Security=True"
Dim query As String = "SELECT OrderID, CustomerName, OrderDate, TotalAmount FROM Orders WHERE OrderDate >= '2024-01-01'"
Dim dataSet As New DataSet()
' Populate DataSet from database
Using connection As New SqlConnection(connectionString)
    Using adapter As New SqlDataAdapter(query, connection)
        adapter.Fill(dataSet, "Orders")
    End Using
End Using
' Create Excel workbook and load data
Dim workBook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
' Auto-size columns for better readability
Dim worksheet As WorkSheet = workBook.WorkSheets(0)
For i As Integer = 0 To worksheet.Columns.Count - 1
    worksheet.AutoSizeColumn(i)
Next
' Save with timestamp in filename
Dim fileName As String = $"OrdersExport_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx"
workBook.SaveAs(fileName)
VB .NET

この例は、データベースクエリからExcelファイルへ完全なワークフローを示しています。SqlDataAdapterはクエリ結果をDataSetに埋め込み、それをIronXLが書式付きのExcelファイルに変換します。自動サイズ調整機能により、データが手動で列幅を調整しなくても表示され、配布の準備が整ったプロフェッショナルなエクスポートが作成されます。 大規模なデータセットを扱うためのガイドについては、大きなExcelファイルを扱う方法を参照してください。

入力

VB.NETでDataSetをExcelに変換する方法:図15 - データベース入力

出力

VB.NETでDataSetをExcelに変換する方法:図10 - Excel出力

1つのExcelファイルで複数のDataTableを扱う方法は?

関連するデータを扱う場合、単一のDataSetに複数のDataTableが含まれていることがあります。 IronXLはこれをシームレスに処理します:

Dim dataSet As New DataSet("CompanyData")
' Create Employees table (dim dt)
Dim employeesTable As New DataTable("Employees")
employeesTable.Columns.Add("EmployeeID", GetType(Integer))
employeesTable.Columns.Add("Name", GetType(String))
employeesTable.Columns.Add("Department", GetType(String))
employeesTable.Rows.Add(1, "John Smith", "Sales")
employeesTable.Rows.Add(2, "Jane Doe", "Marketing")
' Create Departments table
Dim departmentsTable As New DataTable("Departments")
departmentsTable.Columns.Add("DepartmentName", GetType(String))
departmentsTable.Columns.Add("Budget", GetType(Decimal))
departmentsTable.Rows.Add("Sales", 100000)
departmentsTable.Rows.Add("Marketing", 75000)
' Add both tables to DataSet
dataSet.Tables.Add(employeesTable)
dataSet.Tables.Add(departmentsTable)
' Convert to Excel - each DataTable becomes a worksheet
Dim workBook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
' Optionally rename worksheets
workBook.WorkSheets(0).Name = "Employee List"
workBook.WorkSheets(1).Name = "Department Budgets"
workBook.SaveAs("CompanyData.xlsx")
Dim dataSet As New DataSet("CompanyData")
' Create Employees table (dim dt)
Dim employeesTable As New DataTable("Employees")
employeesTable.Columns.Add("EmployeeID", GetType(Integer))
employeesTable.Columns.Add("Name", GetType(String))
employeesTable.Columns.Add("Department", GetType(String))
employeesTable.Rows.Add(1, "John Smith", "Sales")
employeesTable.Rows.Add(2, "Jane Doe", "Marketing")
' Create Departments table
Dim departmentsTable As New DataTable("Departments")
departmentsTable.Columns.Add("DepartmentName", GetType(String))
departmentsTable.Columns.Add("Budget", GetType(Decimal))
departmentsTable.Rows.Add("Sales", 100000)
departmentsTable.Rows.Add("Marketing", 75000)
' Add both tables to DataSet
dataSet.Tables.Add(employeesTable)
dataSet.Tables.Add(departmentsTable)
' Convert to Excel - each DataTable becomes a worksheet
Dim workBook As WorkBook = WorkBook.Create()
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
' Optionally rename worksheets
workBook.WorkSheets(0).Name = "Employee List"
workBook.WorkSheets(1).Name = "Department Budgets"
workBook.SaveAs("CompanyData.xlsx")
VB .NET

DataSet内の各DataTableはExcelファイル内の別個のワークシートになります。これにより、データの論理的な分離が維持されます。 このアプローチは、異なるデータカテゴリごとに個別のワークシートを必要とする包括的なレポートを作成する際に特に有用です。DataSetsに関するMicrosoftのドキュメントによれば、この構造はデータベーススキーマのリレーショナル性を反映しています。

出力

VB.NETでDataSetをExcelに変換する方法:図11 - 複数のワークシートを含むExcel出力 - 従業員一覧

VB.NETでDataSetをExcelに変換する方法:図12 - Excel出力 - 部門予算

Excelエクスポートに基本的な書式を追加する方法は?

IronXLは自動的に基本的な書式を処理しますが、Excelのエクスポートを追加のスタイリングで強化することができます:

' After loading DataSet into WorkBook
Dim worksheet As WorkSheet = workBook.WorkSheets(0)
' Set header row style
Dim headerRange As Range = worksheet.GetRange("A1:D1")
headerRange.Style.Font.Bold = True
headerRange.Style.BackgroundColor = "#4472C4"
headerRange.Style.Font.Color = "#FFFFFF"
' Format currency columns
For rowIndex As Integer = 1 To worksheet.RowCount - 1
    worksheet($"C{rowIndex + 1}").FormatString = "$#,##0.00"
Next
' Add borders to data range
Dim dataRange As Range = worksheet.GetRange($"A1:D{worksheet.RowCount}")
dataRange.Style.Border.TopBorder.Type = BorderType.Thin
dataRange.Style.Border.BottomBorder.Type = BorderType.Thin
' After loading DataSet into WorkBook
Dim worksheet As WorkSheet = workBook.WorkSheets(0)
' Set header row style
Dim headerRange As Range = worksheet.GetRange("A1:D1")
headerRange.Style.Font.Bold = True
headerRange.Style.BackgroundColor = "#4472C4"
headerRange.Style.Font.Color = "#FFFFFF"
' Format currency columns
For rowIndex As Integer = 1 To worksheet.RowCount - 1
    worksheet($"C{rowIndex + 1}").FormatString = "$#,##0.00"
Next
' Add borders to data range
Dim dataRange As Range = worksheet.GetRange($"A1:D{worksheet.RowCount}")
dataRange.Style.Border.TopBorder.Type = BorderType.Thin
dataRange.Style.Border.BottomBorder.Type = BorderType.Thin
VB .NET

これらの書式オプションは、プレーンなデータエクスポートをプロフェッショナルなスプレッドシートに変換します。 スタイリング機能にはフォントのプロパティ、色、枠線、数値形式が含まれ、組織のブランディングまたは報告基準に合致するエクスポートを作成できます。 IronXLドキュメントでさらに多くのセルスタイリングオプションを探ることができます。

出力

VB.NETでDataSetをExcelに変換する方法:図13 - 書式付きのExcel出力

無料トライアルを開始して、VB.NETでのDataSetをExcelへの変換のシンプルさを体験してください。

VB.NETでDataSetをExcelに変換する方法:図14 - ライセンシング

結論

VB.NETでのDataSetをExcelへの変換は、IronXLを使用することで驚くほど簡単になります。 このライブラリは、伝統的なInteropアプローチの複雑さを排除し、データエクスポート、書式設定、および多形式サポートのための強力な機能を提供します。 メモリ内のデータまたはデータベースクエリ結果をエクスポートする場合でも、IronXLはExcelのインストールを必要とせずに効率的に変換を処理します。

IronXLを使用するDataSetからExcelへの変換の主な利点には以下が含まれます:

  • Microsoft Officeへの依存なし
  • 複数のExcel形式のサポート (XLSX, XLS, CSV, TSV)
  • DataTableからの自動ワークシート作成
  • クラウドおよびコンテナ展開のためのクロスプラットフォーム互換性
  • コードを最小限に抑えたシンプルで直感的なAPI

チャート作成、数式サポート、拡張された書式設定オプションなど、さらなる機能を探索するには、IronXLドキュメントをご覧ください。

データエクスポート機能を変革する準備はできていますか? PDF、バーコード、OCRなどのライブラリを含むIronXLをダウンロードしてください。

よくある質問

VB.NETでデータセットをExcelファイルに変換するにはどうすればよいですか?

VB.NETでデータセットをExcelファイルに効率的に変換するには、IronXLを使用します。Microsoft Officeや複雑なCOM参照を必要としない簡単な方法を提供します。

データセットをExcelに変換するためにIronXLを使用する利点は何ですか?

IronXLは、Microsoft Officeや複雑なCOM参照が不要で、データセットをExcelに変換するプロセスを簡素化します。VB.NET開発者にとって効率的で簡単な解決策を提供します。

IronXLを使用するためにMicrosoft Officeをインストールする必要がありますか?

いいえ、IronXLはMicrosoft Officeとは独立して動作しますので、データセットをExcelファイルに変換するためにOfficeをインストールする必要はありません。

IronXLはVB.NETアプリケーションと互換性がありますか?

はい、IronXLはVB.NETアプリケーションと完全に互換性があり、データセットをExcelにエクスポートするために簡単に統合して使用できます。

IronXLはExcel変換のために大規模なデータセットを処理できますか?

IronXLは、大規模なデータセットを効率的に処理するように設計されており、パフォーマンス問題なくスムーズにExcelに変換できます。

IronXLを使用してデータセットをExcelに変換する手順は何ですか?

変換には、データセットをIronXLにロードし、それをExcelファイルとして保存することが含まれます。IronXLのAPIは、各ステップの明確な指示と機能を提供します。

IronXLはデータベースクエリのエクスポートをサポートしていますか?

はい、IronXLはデータベースクエリをExcelにエクスポートすることをサポートしており、レポート生成やデータ分析のタスクを簡素化します。

VB.NETでIronXLを使用するための前提条件はありますか?

VB.NET開発環境を持つこと以外に特定の前提条件はありません。IronXLは、Microsoft Officeなどの追加インストールを必要としません。

IronXLはVB.NETのデータバックアッププロセスをどのように改善しますか?

IronXLは、データセットをExcelに簡単に変換することでデータバックアップを簡素化し、データ保存のための信頼性の高いアクセス可能な形式を提供します。

VB.NETでIronXLを使用するためのガイドはありますか?

はい、IronXLは特にVB.NET開発者向けに詳細なドキュメントとガイドを提供しており、データセットをExcelに変換するなどのタスクのためのステップバイステップの指示を含んでいます。

Curtis Chau
テクニカルライター

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

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