Bu makalede, birden fazla Excel çalışma kitabındaki sayfaları C# kullanarak tek bir çalışma kitabına nasıl kopyalayacağınızı öğreneceksiniz. Ayrıca birden fazla çalışma sayfasındaki verileri tek bir sayfaya nasıl kopyalayacağınızı da öğreneceksiniz. Hadi başlayalım.

Birden Çok Excel Dosyasını Birleştirmek için C# API’si

Aspose.Cells for .NET, .NET uygulamalarınız içinden Excel dosyaları oluşturmanıza ve işlemenize olanak tanıyan, iyi bilinen bir elektronik tablo düzenleme API’sidir. API’nin ikili dosyalarını indirebilir veya NuGet kullanarak yüklemesini sağlayabilirsiniz.

PM> Install-Package Aspose.Cells

C# kullanarak Birden Çok Excel Dosyasını Tek Dosyada Birleştirme

Bazen birden fazla Excel dosyasını tek bir dosyada birleştirmeniz gerekir. Aşağıda gösterildiği gibi çalışma sayfalarını kaynak çalışma kitaplarından hedef çalışma kitabına kopyalamak istiyorsunuz. Excel belgeleri Excel 97, Excel 2010 veya Excel 2016 gibi herhangi bir sürümde olabilir.

C# kullanarak Birden Çok Excel Dosyasını Tek Dosyada Birleştirme

Şekil 1: Excel Dosyalarını Birleştirme

Aşağıdaki örnek kod, birden çok Excel dosyasının C# kullanılarak tek bir dosyada nasıl birleştirileceğini gösterir.

// İlk excel dosyasını açın.
Workbook SourceBook1 = new Workbook("Excel A.xlsx");

// İkinci excel dosyasını açın.
Workbook SourceBook2 = new Workbook("Excel B.xlsx");

// Üçüncü excel dosyasını açın.
Workbook SourceBook3 = new Workbook("Excel C.xlsx");

// İkinci Excel dosyasının çalışma sayfalarını ilk çalışma kitabına kopyalayın.
SourceBook1.Combine(SourceBook2);

// Üçüncü Excel dosyasının çalışma sayfalarını ilk çalışma kitabına kopyalayın.
SourceBook1.Combine(SourceBook3);

// Güncellenen ilk excel dosyasını yeni bir dosya olarak kaydedin.
SourceBook1.Save("CombinedFile.xlsx");

C# kullanarak Excel Dosyalarının Belirli Çalışma Sayfalarını Birleştirme

Yukarıdaki kod, kaynak dosyalardaki tüm çalışma sayfalarını hedef dosyaya kopyalar. Ancak belirli çalışma sayfalarını kaynak dosyalardan hedef dosyaya kopyalamak isteyebilirsiniz. Örneğin, iki Excel dosyanız var ve her birinde Satış, Çalışanlar ve Giderler adında üç çalışma sayfası var. Aşağıdaki şekilde gösterildiği gibi yalnızca Satış çalışma sayfasını her iki dosyadan da hedef dosyaya kopyalamak istiyorsunuz.

C# kullanarak Excel Dosyalarının Belirli Çalışma Sayfalarını Birleştirme

Şekil 2: Excel Dosyalarının Belirli Çalışma Sayfalarını Birleştirme

Aşağıdaki örnek kod, kaynak dosyaların belirli çalışma sayfalarının C# kullanılarak hedef dosyada nasıl birleştirileceğini gösterir.

// Excel A dosyasını açın.
Workbook excelA = new Workbook("Excel A.xlsx");

// Excel B dosyasını açın.
Workbook excelB = new Workbook("Excel B.xlsx");

// Hedef Çalışma Kitabı oluşturun.
Workbook destWorkbook = new Workbook();
// İlk çalışma sayfası varsayılan olarak Çalışma Kitabına eklenir. İkinci çalışma sayfasını ekleyin.
destWorkbook.Worksheets.Add();

// Excel A dosyasının Satış çalışma sayfasını hedef dosyaya kopyalayın.
destWorkbook.Worksheets[0].Copy(excelA.Worksheets["Sales"]);

// Excel B dosyasının Satış çalışma sayfasını hedef dosyaya kopyalayın.
destWorkbook.Worksheets[1].Copy(excelB.Worksheets["Sales"]);

// Varsayılan olarak çalışma sayfası adları sırasıyla "Sayfa1" ve "Sayfa2"dir.
// Onlara anlamlı isimler verelim.
destWorkbook.Worksheets[0].Name = excelA.FileName + " - Sales";
destWorkbook.Worksheets[1].Name = excelB.FileName + " - Sales";

// Hedef dosyayı kaydedin.
destWorkbook.Save("CombinedFile.xlsx");

C# kullanarak Birden Çok Çalışma Sayfasını Tek Sayfada Birleştirme

Bazen birden fazla çalışma sayfasındaki verileri tek bir çalışma sayfasına kopyalamanız gerekir. Örneğin, bir Excel dosyasında farklı ürünler hakkında bilgi içeren birkaç çalışma sayfanız var ve bu sayfaları aşağıdaki gibi tek bir özet çalışma sayfasında birleştirmek istiyorsunuz:

C# kullanarak Birden Çok Çalışma Sayfasını Tek Sayfada Birleştirme

Şekil 3: Birden Çok Çalışma Sayfasını Tek Bir Çalışma Sayfasında Birleştirme

Aşağıdaki kod parçacığı, C# kullanarak çeşitli çalışma sayfalarındaki verilerin tek bir çalışma sayfasına nasıl kopyalanacağını gösterir.

// Çalışma sayfalarını içeren bir Excel dosyasını açın:
// Ürünler1, Ürünler2 ve Ürünler3
Workbook workbook = new Workbook("Products.xlsx");

// Özet_sayfa adlı bir çalışma sayfası ekleyin
Worksheet summarySheet = workbook.Worksheets.Add("Summary_sheet");

// Verilerini kopyalamak istediğiniz kaynak çalışma sayfaları üzerinde yineleme yapın.
// özet çalışma sayfası
string[] nameOfSourceWorksheets = { "Products1", "Products2", "Products3" };
int totalRowCount = 0;

foreach (string sheetName in nameOfSourceWorksheets)
{
    Worksheet sourceSheet = workbook.Worksheets[sheetName];

    Range sourceRange;
    Range destRange;
    // Ürünler1 çalışma sayfası olması durumunda, tüm satırları ve sütunları ekleyin.
    if (sheetName.Equals("Products1"))
    {
        sourceRange = sourceSheet.Cells.MaxDisplayRange;
        
        destRange = summarySheet.Cells.CreateRange(
                sourceRange.FirstRow + totalRowCount,
                sourceRange.FirstColumn,
                sourceRange.RowCount,
                sourceRange.ColumnCount);
    }
    // Ürünler2 ve Ürünler3 çalışma sayfaları durumunda,
    // (başlıkları içeren) ilk satırı hariç tutun.
    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);
    }

    // Verileri, biçimlendirmeyi, nesneleri çizmeyi vb. bir dosyadan kopyalar.
    // kaynak aralığından hedef aralığına.
    destRange.Copy(sourceRange);
    totalRowCount = sourceRange.RowCount + totalRowCount;
}

// Çalışma kitabını kaydet 
workbook.Save("Summarized.xlsx");

Çözüm

Bu makalede, birden çok Excel dosyasını programlı olarak tek bir dosyada nasıl birleştireceğinizi öğrendiniz. Kaynak dosyanın tüm çalışma sayfalarını veya belirli sayfalarını hedef dosyaya kopyalayabilirsiniz. Ayrıca birden fazla çalışma sayfasındaki verileri tek bir çalışma sayfasında nasıl birleştireceğinizi de öğrendiniz. Daha fazla bilgi için lütfen [Aspose.Cells for .NET belgelerine] göz atın10. Sorularınız varsa lütfen Destek Forumumuzda sormaya çekinmeyin. Birkaç saat içinde onlara cevap vereceğiz.

Ayrıca bakınız