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

C#でExcelファイルを連結またはマージする方法Combine XLS

マイクロソフトは、強力なスプレッドシートプログラムであるMicrosoft Excelを作成しました。 これはデータの整理、分析、視覚化のために一般的に使用されるツールです。 それはMicrosoft Officeスイートの構成要素です。Excelは多くの機能を持っており、個人、専門家、学者、企業によって使用される柔軟なアプリケーションです。

金融、会計、ビジネス分析、データ分析、研究、教育など、多くの業界でExcelが広く使用されています。 その幅広い機能セットと適応性により、個人およびプロフェッショナルな文脈でデータを整理、評価、表示するための好ましいツールです。

IronXLは、さまざまな種類のExcel操作を実行するために使用できる強力なExcelライブラリです。 この記事では、C#でExcelファイルを連結またはマージする方法を学びます。

C#でExcelファイルをマージする方法

  1. Visual Studioで新しいプロジェクトを作成します
  2. プロジェクトにIronXLライブラリをインストールします
  3. マージが必要なすべてのExcelファイルを読み込みます
  4. 読み込まれたExcelシートからすべてのシートを抽出します
  5. シートを新しいExcelファイルに追加します
  6. 別のファイルに保存します

IronXLライブラリー

IronXLは、.NETアプリケーションでExcelファイルを管理する際のMicrosoft Interopの代替です。 IronXLは、.NET環境でExcelファイルをプログラムによって操作するより簡単で効果的かつ強力な方法を提供する一方で、Microsoft InteropはExcelとの通信のためにInteropコンポーネントの使用を必要とします。

IronXLの使用には以下の利点があります:

  • パフォーマンスおよびリソースの経済性: IronXLはPC上にExcelアプリケーションがインストールされていないため、より良いパフォーマンスを発揮します。
  • 可読性とシンプルさ: IronXLはよりシンプルなAPIを提供し、Microsoft Interopの複雑さなしにExcelファイルを読み書きおよび操作しやすくします。
  • 互換性と依存性: IronXLはMicrosoft Excelをインストールする必要がないため、さまざまなOfficeやExcelバージョンとの依存性と互換性の問題を排除します。
  • プラットフォームの独立性: IronXLは、異なる環境やプラットフォームでの展開の柔軟性と容易さを提供する一方で、Microsoft Interopは特定のMicrosoft Officeバージョンにより密接に関連しています。

.NET開発者がExcelファイルをプログラムで作業する必要がある場合、IronXLはそのパフォーマンス、使いやすさ、および追加アプリケーションへの依存が少ないため、しばしばより良い選択です。

IronXLとMicrosoft Interopの選択は、プロジェクトの特定の要件、既存のインフラストラクチャ、および各ライブラリへの開発者の精通度などの要因によって影響されるかもしれません。 この選択をする際に常にアプリケーションのニーズを考慮してください。IronXLライブラリについての詳細はこのページを訪れてください。

Visual Studioで新しいプロジェクトを作成する

Visual Studioアプリケーションを起動するには、メニューから「ファイル」をクリックし、「新規プロジェクト」を選択し、「コンソールアプリケーション」を選択します。

C#でExcelファイルを連結またはマージする方法:図1

プロジェクト名とファイルの場所を入力します。 「作成」ボタンをクリックし、以下に示す必要な.NET Frameworkを選択します。

C#でExcelファイルを連結またはマージする方法:図2

プロジェクトの構造は選択したアプリケーションタイプに依存します。 コンソール、Windows、およびWebアプリケーションを使用してアプリケーションを構築または実行し、Program.csファイルを入力してコードを追加します。

C#でExcelファイルを連結またはマージする方法:図3

その後、ライブラリを追加し、コードをテストできます。

IronXLライブラリをインストールする

IronXLライブラリをインストールするには、NuGetパッケージマネージャコンソールを開き、以下のコマンドを入力します:

Install-Package IronXL.Excel

C#でExcelファイルを連結またはマージする方法:図4

または、NuGetパッケージマネージャを使用して「IronXL」を検索し、関連パッケージのリストからダウンロードします。

C#でExcelファイルを連結またはマージする方法:図5

IronXLを使用してExcelファイルを結合する

IronXLを使用すると、次のコードで複数のExcelファイルやワークシートを1つのExcelファイルやワークシートに結合できます:

using IronXL;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Array of file paths for the Excel files to be merged
        string[] filePaths = { "file1.xlsx", "file2.xlsx" };

        // Create a new workbook to add sheets from the existing files
        WorkBook newWorkBook = WorkBook.Create();

        try
        {
            foreach (var filePath in filePaths)
            {
                // Load the existing Excel file into a workbook
                WorkBook existingWorkbook = WorkBook.LoadExcel(filePath);

                // Retrieve the sheets from the loaded workbook
                WorksheetsCollection sheetCollection = existingWorkbook.WorkSheets;

                // Add each sheet from the existing workbook to the new workbook
                foreach (var sheet in sheetCollection)
                {
                    newWorkBook.WorkSheets.Add(sheet);
                }
            }

            // Save the new workbook with a merged sheet collection
            newWorkBook.SaveAs("MergedBook.xls");
        }
        catch (Exception ex)
        {
            // Output any exceptions encountered during the merging process
            Console.WriteLine(ex.ToString());
        }
    }
}
using IronXL;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Array of file paths for the Excel files to be merged
        string[] filePaths = { "file1.xlsx", "file2.xlsx" };

        // Create a new workbook to add sheets from the existing files
        WorkBook newWorkBook = WorkBook.Create();

        try
        {
            foreach (var filePath in filePaths)
            {
                // Load the existing Excel file into a workbook
                WorkBook existingWorkbook = WorkBook.LoadExcel(filePath);

                // Retrieve the sheets from the loaded workbook
                WorksheetsCollection sheetCollection = existingWorkbook.WorkSheets;

                // Add each sheet from the existing workbook to the new workbook
                foreach (var sheet in sheetCollection)
                {
                    newWorkBook.WorkSheets.Add(sheet);
                }
            }

            // Save the new workbook with a merged sheet collection
            newWorkBook.SaveAs("MergedBook.xls");
        }
        catch (Exception ex)
        {
            // Output any exceptions encountered during the merging process
            Console.WriteLine(ex.ToString());
        }
    }
}
Imports IronXL
Imports System

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Array of file paths for the Excel files to be merged
		Dim filePaths() As String = { "file1.xlsx", "file2.xlsx" }

		' Create a new workbook to add sheets from the existing files
		Dim newWorkBook As WorkBook = WorkBook.Create()

		Try
			For Each filePath In filePaths
				' Load the existing Excel file into a workbook
				Dim existingWorkbook As WorkBook = WorkBook.LoadExcel(filePath)

				' Retrieve the sheets from the loaded workbook
				Dim sheetCollection As WorksheetsCollection = existingWorkbook.WorkSheets

				' Add each sheet from the existing workbook to the new workbook
				For Each sheet In sheetCollection
					newWorkBook.WorkSheets.Add(sheet)
				Next sheet
			Next filePath

			' Save the new workbook with a merged sheet collection
			newWorkBook.SaveAs("MergedBook.xls")
		Catch ex As Exception
			' Output any exceptions encountered during the merging process
			Console.WriteLine(ex.ToString())
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

説明:

  1. ファイルパス:すべてのExcelファイルのファイルパスを格納する配列を使用します。
  2. ワークブック作成WorkBook.Create()を使用して新しいExcelワークブックを作成し、すべての結合シートを格納します。
  3. ファイル読み込み:ファイルパスを反復処理し、各ExcelファイルをWorkBookオブジェクトにWorkBook.LoadExcel(filePath)を使用して読み込みます。
  4. シート収集:読み込んだ各ワークブックからすべてのワークシートを取得します。
  5. シート追加:既存ファイルからの各ワークシートを新しいワークブックにAddメソッドを使用して追加します。
  6. ファイル保存:新しいワークブックを「MergedBook.xls」として保存し、結合プロセスを完了します。

以下はExcelファイルを結合するために使用されるサンプル入力ファイルです。

C#でExcelファイルを連結またはマージする方法:図6

計算されたマージファイル:

C#でExcelファイルを連結またはマージする方法:図7

IronXLの詳細情報については、このページを訪れてください。

結論

IronXLは、他の外部ライブラリとは独立して動作するため、Excelの人気のあるアドオンです。 Microsoft Excelは自己完結型であるため、別途インストールする必要はなく、追加の依存関係なしにタスクを実行できます。 これは、Wordドキュメントのファイルを解析するために他のライブラリを必要とするInteropライブラリとは対照的です。

IronXLは、プログラミングでMicrosoft Excelドキュメントを処理する新しい方法を提供します。 それは計算、ソート、トリミング、検索と置換、ファイル格納などの操作を可能にします。 それは効率的にExcelデータの読み取り、書き込み、および管理を可能にします。

IronXLの初期コストは$799です。 または、顧客はサポートとソフトウェアのアップグレードを受け取るための1年間の会員費を選択することもできます。 有償プランは、不正再配布に対する保護も提供します。 IronXLの無料トライアルをご希望の場合、このリンクをクリックしてください。 詳細な価格情報については、IronXLライセンスウェブサイトをご覧ください。 Iron Software製品の詳細については、このページを訪れてください。

よくある質問

C#を使用して複数のExcelファイルを1つにマージするにはどうすればよいですか?

IronXLを使用して複数のExcelファイルを1つにマージすることができます。各Excelファイルを読み込み、シートを抽出し、それらを新しいワークブックに追加します。異なるファイルからすべてのシートを結合した後、新しいワークブックをマージされたExcelファイルとして保存します。

ExcelファイルをマージするためにIronXLがMicrosoft Interopよりも優れている理由は何ですか?

IronXLはMicrosoft Interopよりも優れている理由は、Microsoft Excelのインストールに依存せず、パフォーマンスの向上、プラットフォーム間での展開の容易さ、Excelファイル操作のための簡潔なAPIを提供するからです。

Visual Studio プロジェクトに IronXL をインストールする方法を教えてください。

Visual StudioプロジェクトにIronXLをインストールするには、NuGetパッケージマネージャーコンソールでInstall-Package IronXLコマンドを使用するか、NuGetパッケージマネージャーで「IronXL」を検索し、リストからダウンロードします。

Microsoft ExcelをインストールせずにC#でExcelファイルを操作することは可能ですか?

はい、IronXLを使用すると、C#でExcelファイルを操作することができます。IronXLはその操作にExcelを必要としないためです。

IronXLを使用してExcelファイルをマージする際の主なステップは何ですか?

IronXLを使用してExcelファイルをマージする主なステップには、新しいワークブックを作成し、既存のExcelファイルを読み込み、これらのファイルからシートを抽出し、それらのシートを新しいワークブックに追加し、マージされたワークブックを保存することが含まれます。

Excelファイル操作のためにVisual Studioでプロジェクトを開始するにはどうすればよいですか?

Excelファイル操作のためにVisual Studioでプロジェクトを開始するには、「ファイル」、次に「新しいプロジェクト」を選択し、要件に応じた適切な.NET Frameworkを選んで、新しい「コンソールアプリケーション」プロジェクトを作成します。

IronXLが従来のExcel操作方法に対して提供する利点は何ですか?

IronXLは、Excelのインストールが不要である、パフォーマンスが向上する、リソースの節約、シンプルで直感的なAPI、プラットフォーム独立性といった利点を提供し、現代の.NETアプリケーションに最適です。

IronXLは異なるバージョンのExcelファイルをどのようにしてマージしますか?

IronXLは、特定のExcelやOfficeバージョンに依存せずに動作するように設計されているため、異なるバージョンのExcelファイルをシームレスにマージし、互換性と使いやすさを確保します。

Curtis Chau
テクニカルライター

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

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