Pada artikel ini, Anda akan mempelajari cara menyalin sheet dari beberapa workbook Excel ke dalam satu workbook menggunakan C#. Anda juga akan mempelajari cara menyalin data dari beberapa lembar kerja ke dalam satu lembar. Ayo mulai.

C# API untuk Menggabungkan Banyak File Excel

Aspose.Cells for .NET adalah API manipulasi spreadsheet terkenal yang memungkinkan Anda membuat dan memproses file Excel dari dalam aplikasi .NET Anda. Anda dapat mengunduh binari API atau menginstalnya menggunakan NuGet.

PM> Install-Package Aspose.Cells

Gabungkan Beberapa File Excel menjadi Satu menggunakan C#

Terkadang, Anda perlu menggabungkan beberapa file Excel menjadi satu file. Anda ingin menyalin lembar kerja dari buku kerja sumber ke buku kerja tujuan seperti yang ditunjukkan di bawah ini. Dokumen Excel dapat berupa versi apa pun seperti Excel 97, Excel 2010 atau Excel 2016.

Gabungkan Beberapa File Excel menjadi Satu menggunakan C#

Gambar 1: Gabungkan File Excel

Kode contoh berikut menunjukkan cara menggabungkan beberapa file Excel menjadi satu menggunakan C#.

// Open the first excel file.
Workbook SourceBook1 = new Workbook("Excel A.xlsx");
// Open the second excel file.
Workbook SourceBook2 = new Workbook("Excel B.xlsx");
// Open the third excel file.
Workbook SourceBook3 = new Workbook("Excel C.xlsx");
// Copy worksheets of second Excel file to the first workbook.
SourceBook1.Combine(SourceBook2);
// Copy worksheets of third Excel file to the first workbook.
SourceBook1.Combine(SourceBook3);
// Save the updated first excel file as a new file.
SourceBook1.Save("CombinedFile.xlsx");

Gabungkan Lembar Kerja Tertentu dari File Excel menggunakan C#

Kode di atas menyalin semua lembar kerja di file sumber ke file tujuan. Namun, Anda mungkin ingin menyalin lembar kerja tertentu dari file sumber ke file tujuan. Misalnya, Anda memiliki dua file Excel dan masing-masing memiliki tiga lembar kerja bernama Penjualan, Karyawan, dan Pengeluaran. Anda hanya ingin menyalin lembar kerja Penjualan dari kedua file ke file tujuan seperti yang diperlihatkan dalam gambar berikut.

Gabungkan Lembar Kerja Tertentu dari File Excel menggunakan C#

Gambar 2: Gabungkan Lembar Kerja Tertentu dari File Excel

Kode contoh berikut menunjukkan cara menggabungkan lembar kerja tertentu dari file sumber ke dalam file tujuan menggunakan C#.

// Open Excel A file.
Workbook excelA = new Workbook("Excel A.xlsx");
// Open Excel B file.
Workbook excelB = new Workbook("Excel B.xlsx");
// Create destination Workbook.
Workbook destWorkbook = new Workbook();
// First worksheet is added by default to the Workbook. Add the second worksheet.
destWorkbook.Worksheets.Add();
// Copy the Sales worksheet of Excel A file to destination file.
destWorkbook.Worksheets[0].Copy(excelA.Worksheets["Sales"]);
// Copy the Sales worksheet of Excel B file to destination file.
destWorkbook.Worksheets[1].Copy(excelB.Worksheets["Sales"]);
// By default, the worksheet names are "Sheet1" and "Sheet2" respectively.
// Lets give them meaningful names.
destWorkbook.Worksheets[0].Name = excelA.FileName + " - Sales";
destWorkbook.Worksheets[1].Name = excelB.FileName + " - Sales";
// Save the destination file.
destWorkbook.Save("CombinedFile.xlsx");

Menggabungkan Beberapa Lembar Kerja menjadi Satu menggunakan C#

Terkadang, Anda perlu menyalin data dari beberapa lembar kerja ke dalam satu lembar kerja. Misalnya, Anda memiliki beberapa lembar kerja di file Excel yang berisi informasi tentang berbagai produk, dan Anda ingin menggabungkan lembar kerja ini menjadi satu lembar kerja ringkasan, seperti ini:

Menggabungkan Beberapa Lembar Kerja menjadi Satu menggunakan C#

Gambar 3: Menggabungkan Beberapa Lembar Kerja menjadi Satu

Cuplikan kode berikut menunjukkan cara menyalin data dari beberapa lembar kerja ke dalam satu lembar kerja menggunakan C#.

// Open an Excel file that contains the worksheets:
// Products1, Products2 and Products3
Workbook workbook = new Workbook("Products.xlsx");
// Add a worksheet named Summary_sheet
Worksheet summarySheet = workbook.Worksheets.Add("Summary_sheet");
// Iterate over source worksheets whose data you want to copy to the
// summary worksheet
string[] nameOfSourceWorksheets = { "Products1", "Products2", "Products3" };
int totalRowCount = 0;
foreach (string sheetName in nameOfSourceWorksheets)
{
Worksheet sourceSheet = workbook.Worksheets[sheetName];
Range sourceRange;
Range destRange;
// In case of Products1 worksheet, include all rows and cols.
if (sheetName.Equals("Products1"))
{
sourceRange = sourceSheet.Cells.MaxDisplayRange;
destRange = summarySheet.Cells.CreateRange(
sourceRange.FirstRow + totalRowCount,
sourceRange.FirstColumn,
sourceRange.RowCount,
sourceRange.ColumnCount);
}
// In case of Products2 and Products3 worksheets,
// exclude the first row (which contains headings).
else
{
int mdatarow = sourceSheet.Cells.MaxDataRow; // Zero-based
int mdatacol = sourceSheet.Cells.MaxDataColumn; // Zero-based
sourceRange = sourceSheet.Cells.CreateRange(0 + 1, 0, mdatarow, mdatacol + 1);
destRange = summarySheet.Cells.CreateRange(
sourceRange.FirstRow + totalRowCount -1,
sourceRange.FirstColumn,
sourceRange.RowCount,
sourceRange.ColumnCount);
}
// Copies data, formatting, drawing objects etc. from a
// source range to destination range.
destRange.Copy(sourceRange);
totalRowCount = sourceRange.RowCount + totalRowCount;
}
// Save the workbook
workbook.Save("Summarized.xlsx");

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara menggabungkan beberapa file Excel secara terprogram menjadi satu. Anda dapat menyalin semua lembar kerja dari file sumber atau yang spesifik ke file tujuan. Anda juga telah mempelajari cara menggabungkan data dari beberapa lembar kerja menjadi satu lembar kerja. Silakan periksa dokumentasi Aspose.Cells untuk .NET untuk informasi lebih lanjut. Jika Anda memiliki pertanyaan, jangan ragu untuk bertanya di [Forum Dukungan] kami11. Kami akan menjawabnya dalam beberapa jam.

Lihat juga