チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
同じタイプまたはカテゴリの Excel ファイルをマージすることで、複数のファイルを同時に開くことを回避し、時間を節約できます。この記事では、Spire.XLS for .NET を使用して、C# および VB.NET でプログラムによって Excel ファイルをマージする方法を紹介します。
まず、Spire.XLS for.NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS以下は、複数の Excel ファイルを1つの Excel ファイルにマージする手順です。
using Spire.Xls;
namespace MergeExcelFiles
{
class Program
{
static void Main(string[] args)
{
//マージが必要なExcelファイルのパスを文字列配列に保存する
string[] inputFiles = new string[] { "2019.xlsx", "2020.xlsx", "2021.xlsx" };
//Workbookクラスのオブジェクトを初期化する
Workbook newWorkbook = new Workbook();
//ワークブック内のデフォルトのワークシートを消去する
newWorkbook.Worksheets.Clear();
//別の一時的なWorkbookクラスのオブジェクトを初期化する
Workbook tempWorkbook = new Workbook();
//文字列配列をループする
foreach (string file in inputFiles)
{
//現在のワークブックをロードする
tempWorkbook.LoadFromFile(file);
//現在のワークブック内のワークシートをループする
foreach (Worksheet sheet in tempWorkbook.Worksheets)
{
//各ワークシートを現在のワークブックから新しいワークブックにコピーする
newWorkbook.Worksheets.AddCopy(sheet, WorksheetCopyType.CopyAll);
}
}
//新しいワークブックをファイルに保存する
newWorkbook.SaveToFile("MergeWorkbooks.xlsx", ExcelVersion.Version2013);
}
}
}Imports Spire.Xls
Namespace MergeExcelFiles
Friend Class Program
Private Shared Sub Main(ByVal args As String())
' マージが必要なExcelファイルのパスを文字列配列に保存する
Dim inputFiles = New String() {"2019.xlsx", "2020.xlsx", "2021.xlsx"}
' Workbookクラスのオブジェクトを初期化する
Dim newWorkbook As Workbook = New Workbook()
'ワークブック内のデフォルトのワークシートを消去する
newWorkbook.Worksheets.Clear()
'別の一時的なWorkbookクラスのオブジェクトを初期化する
Dim tempWorkbook As Workbook = New Workbook()
'文字列配列をループする
For Each file In inputFiles
'現在のワークブックをロードする
tempWorkbook.LoadFromFile(file)
'現在のワークブック内のワークシートをループする
For Each sheet As Worksheet In tempWorkbook.Worksheets
'各ワークシートを現在のワークブックから新しいワークブックにコピーする
newWorkbook.Worksheets.AddCopy(sheet, WorksheetCopyType.CopyAll)
Next
Next
'新しいワークブックをファイルに保存する
newWorkbook.SaveToFile("MergeWorkbooks.xlsx", ExcelVersion.Version2013)
End Sub
End Class
End Namespace
以下は、Excel ファイル内の複数のワークシートのデータを 1つのワークシートにマージする手順です。
using Spire.Xls;
namespace MergeExcelWorksheets
{
class Program
{
static void Main(string[] args)
{
//Workbookクラスのオブジェクトを初期化する
Workbook workbook = new Workbook();
//Excelファイルをロードする
workbook.LoadFromFile("Sample.xlsx");
//最初のワークシートを取得する
Worksheet sheet1 = workbook.Worksheets[0];
//2つ目のワークシートを取得する
Worksheet sheet2 = workbook.Worksheets[1];
//2つ目のワークシートの使用範囲を取得する
CellRange sourceRange = sheet2.AllocatedRange;
//最初のワークシートのターゲット範囲を指定する
CellRange destRange = sheet1.Range[sheet1.LastRow + 1, 1];
//2つ目のワークシートの使用範囲を1つ目のワークシートのターゲット範囲にコピーする
sourceRange.Copy(destRange);
//2番目のシートを削除する
sheet2.Remove();
//結果ファイルを保存する
workbook.SaveToFile("MergeWorksheets.xlsx", ExcelVersion.Version2013);
}
}
}Imports Spire.Xls
Namespace MergeExcelWorksheets
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'Workbookクラスのオブジェクトを初期化する
Dim workbook As Workbook = New Workbook()
'Excelファイルをロードする
workbook.LoadFromFile("Sample.xlsx")
'最初のワークシートを取得する
Dim sheet1 As Worksheet = workbook.Worksheets(0)
'2つ目のワークシートを取得する
Dim sheet2 As Worksheet = workbook.Worksheets(1)
'2つ目のワークシートの使用範囲を取得する
Dim sourceRange As CellRange = sheet2.AllocatedRange
'最初のワークシートのターゲット範囲を指定する
Dim destRange As CellRange = sheet1.Range(sheet1.LastRow + 1, 1)
'2つ目のワークシートの使用範囲を1つ目のワークシートのターゲット範囲にコピーする
sourceRange.Copy(destRange)
'2番目のシートを削除する
sheet2.Remove()
'結果ファイルを保存する
workbook.SaveToFile("MergeWorksheets.xlsx", ExcelVersion.Version2013)
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。