3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C#を使用してExcelファイルのマージする方法

Last updated at Posted at 2022-03-16

普通にExcelドキュメントを使って仕事をしているとき、常に複数のファイルを作成、使用しなければなりません、そして、多くのドキュメントを一つにマージする場合もあります。Excelをマージする日常的な方法は、通常、次の2つのタイプに分けられます。

複数のExcelファイルを1つのファイルにマージする
複数のExcelファイルを1つのワークシートにマージする

この記事では、C#および.NET ExcelコンポーネントのSpire.XLSを使用して、上記の2つの方法でExcelファイルをマージする方法を紹介します。

複数のExcelファイルを1つのファイルにマージする

テストドキュメントは以下のようになります:
01.png
02.png

コード一覧

using Spire.Xls;

namespace Merge
{
    class Program
    {
        static void Main(string[] args)
        {
            //新しいブックオブジェクトを作成する
            Workbook newbook = new Workbook();
            newbook.Version = ExcelVersion.Version2013;
            //ドキュメント内のワークシートを削除する(新しく作成されたドキュメントには、デフォルトで3つのワークシートが含まれている)
            newbook.Worksheets.Clear();
            //マージするに必要なExcelドキュメントをロードするための一時的なブックを作成する
            Workbook tempbook = new Workbook();
            //配列にマージする必要のあるExcelドキュメント名を保存する
            string[] excelFiles = new string[] { "C:\\Users\\Administrator\\Desktop\\1.xlsx", "C:\\Users\\Administrator\\Desktop\\2.xlsx" };
            //配列をトラバースする
            for (int i = 0; i < excelFiles.Length; i++)
            {
                //Excelドキュメントをロードする
                tempbook.LoadFromFile(excelFiles[i]);
                //AddCopyメソッドを使用して、ドキュメント内のすべてのワークシートを新しいブックに追加する
                foreach (Worksheet sheet in tempbook.Worksheets)
                {
                    newbook.Worksheets.AddCopy(sheet);
                }
            }
            //ドキュメントを保存する
            newbook.SaveToFile("MergeFiles.xlsx", ExcelVersion.Version2013);
        }
    }
}

マージした結果:
03.png
04.png

複数のExcelファイルを1つのワークシートにマージする

テストドキュメントは以下のようになります:
05.png

コード一覧

using Spire.Xls;
using System.Data;

namespace Merge
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] excelFiles = new string[] { "C:\\Users\\Administrator\\Desktop\\1.xlsx", "C:\\Users\\Administrator\\Desktop\\2.xlsx", "C:\\Users\\Administrator\\Desktop\\3.xlsx" };

            Workbook workbook1 = new Workbook();
            //一番目のExcelドキュメントをロードする
            workbook1.LoadFromFile(excelFiles[0]);

            //二番目のExcelドキュメントをロードする
            Workbook workbook2 = new Workbook();
            workbook2.LoadFromFile(excelFiles[1]);

            //三番目のExcelドキュメントをロードする
            Workbook workbook3 = new Workbook();
            workbook3.LoadFromFile(excelFiles[2]);

            //最初のファイルの一番目のシートを取得する
            Worksheet sheet1 = workbook1.Worksheets[0];

            //2番目と3番目のExcelファイルのワークシートをdatatableを介して最初のファイルの一番目のワークシートに挿入する
            Worksheet sheet2 = workbook2.Worksheets[0];
            DataTable dataTable1 = sheet2.ExportDataTable();

            Worksheet sheet3 = workbook3.Worksheets[0];
            DataTable dataTable2 = sheet3.ExportDataTable();

            sheet1.InsertDataTable(dataTable1, true, sheet1.LastRow + 1, 1);
            sheet1.InsertDataTable(dataTable2, true, sheet1.LastRow + 1, 1);

            //ドキュメントを保存する
            workbook1.SaveToFile("Merged.xlsx", ExcelVersion.Version2013);
        }
    }
}

06.png

今回のExcelファイルのマージする方法は以上でした、最後まで読んでいただきありがとうございます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?