Hücreleri birleştirme ve ayırma, Microsoft Excel’in basit ve yaygın olarak kullanılan bir özelliğidir. Hücreleri birleştirmek, örneğin aynı başlığı paylaşan birden çok sütun içeren bir çalışma sayfanız olduğunda senaryolarda yardımcı olabilir. Ortak bir başlık vermek için sütunların üzerindeki hücreleri birleştirebilirsiniz. Birleştirilmiş hücrelere artık gerek kalmaması durumunda, bunları kolayca ayırabilirsiniz. Bu görevleri C++ uygulamalarınızda gerçekleştirmeniz gerekebilir. Bunun için, bu makale size Excel çalışma sayfalarındaki hücreleri C++ kullanarak programlı olarak nasıl birleştireceğinizi ve ayıracağınızı öğretecektir.
- Hücreleri Birleştirmek ve Ayırmak için C++ API
- C++ Kullanarak Bir Excel Çalışma Sayfasında Hücreleri Birleştirme
- C++ Kullanarak Bir Excel Çalışma Sayfasındaki Hücreleri Ayırın
- C++ Kullanarak Bir Excel Çalışma Sayfasında Bir Hücre Aralığını Birleştirme
- C++ Kullanarak Bir Excel Çalışma Sayfasında Bir Hücre Aralığını Ayırın
- C++ Kullanarak Bir Excel Çalışma Sayfasında Adlandırılmış Aralığın Hücrelerini Birleştirme
Hücreleri Birleştirmek ve Ayırmak için C++ API
Aspose.Cells for C++, Microsoft Excel’in yüklenmesini gerektirmeden Excel dosyaları oluşturmanıza, okumanıza ve değiştirmenize izin veren yerel bir C++ kitaplığıdır. API ayrıca bir Excel çalışma sayfasındaki hücrelerin birleştirilmesini ve ayrılmasını da destekler. API’yi NuGet aracılığıyla yükleyebilir veya doğrudan İndirilenler bölümünden indirebilirsiniz.
PM> Install-Package Aspose.Cells.Cpp
C++ Kullanarak Bir Excel Çalışma Sayfasında Hücreleri Birleştirme
Bu örnekte boş bir Excel çalışma sayfası oluşturacağız ve aşağıda verilen adımları izleyerek birkaç hücreyi birleştireceğiz.
- İlk olarak, IWorkbook sınıfının bir örneğini oluşturun.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) yöntemini kullanarak çalışma sayfasını alın.
- IWorksheet->GetICells() yöntemini kullanarak hücreleri alın.
- Hücreleri ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose:) kullanarak birleştirin. Cells::Systems::Int32 totalColumns) yöntemi.
- Birleştirilmiş hücrelere stiller uygulayın.
- Son olarak, çıktı Excel dosyasını IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String dosyaAdı) yöntemi.
Aşağıdaki örnek kod, C++ kullanarak bir Excel çalışma sayfasındaki hücrelerin nasıl birleştirileceğini gösterir.
// Çıkış dizini yolu.
StringPtr outDir = new String("OutputDirectory\\");
// Giriş Excel dosyasını yükleyin
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Excel dosyasındaki ilk çalışma sayfasına erişin
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Tüm hücreleri getirmek için bir Cells nesnesi oluşturun.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Hücreleri birleştir
cells->Merge(5, 2, 2, 3);
// Verileri hücreye koy
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));
// Stil nesnesi oluşturma
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();
// Font nesnesi oluşturma
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();
// adı ayarla
font->SetName(new String("Times New Roman"));
// Yazı tipi boyutunu ayarla
font->SetSize(18);
// Yazı tipi rengini ayarla
font->SetColor(Systems::Drawing::Color::GetCyan());
// Metni kalın yap
font->SetBold(true);
// Metni italik yap
font->SetItalic(true);
// Ön plan rengini ayarla
style->SetForegroundColor(Systems::Drawing::Color::GetRed());
// Deseni Ayarla
style->SetPattern(BackgroundType_Solid);
// Stili Uygula
cells->GetICell(5, 2)->SetIStyle(style);
// Excel dosyasını kaydedin
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
C++ Kullanarak Bir Excel Çalışma Sayfasındaki Hücreleri Ayırın
Aşağıda, bir Excel çalışma sayfasındaki hücreleri ayırma adımları verilmiştir.
- IWorkbook sınıfını kullanarak Excel dosyasını yükleyin.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) yöntemini kullanarak birleştirilmiş hücreleri içeren çalışma sayfasını alın.
- IWorksheet->GetICells() yöntemini kullanarak hücreleri alın.
- ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells) kullanarak hücreleri ayırın ::Systems::Int32 totalColumns) yöntemi.
- Son olarak, çıktı Excel dosyasını IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String dosyaAdı) yöntemi.
Aşağıdaki örnek kod, C++ kullanarak bir Excel çalışma sayfasındaki hücrelerin nasıl ayrılacağını gösterir.
// Kaynak dizin yolu.
StringPtr srcDir = new String("SourceDirectory\\");
// Çıkış dizini yolu.
StringPtr outDir = new String("OutputDirectory\\");
// Giriş Excel dosyasını yükleyin
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));
// Excel dosyasındaki ilk çalışma sayfasına erişin
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Tüm hücreleri getirmek için bir Cells nesnesi oluşturun.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Hücreleri ayırın.
cells->UnMerge(5, 2, 2, 3);
// Excel dosyasını kaydedin
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
C++ Kullanarak Bir Excel Çalışma Sayfasında Bir Hücre Aralığını Birleştirme
Aşağıdakiler, bir Excel çalışma sayfasındaki bir hücre aralığını birleştirme adımlarıdır.
- İlk olarak, IWorkbook sınıfının bir örneğini oluşturun.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) yöntemini kullanarak istediğiniz çalışma sayfasını alın.
- Hücreye veri girin.
- IWorksheet->GetICells()->CreateIRange(intrusiveptr) kullanarak aralığı oluşturun.Aspose::Cells::Systems::String adres) yöntemi.
- IRange->Merge() yöntemini kullanarak aralığı birleştirin.
- Son olarak, çıktı Excel dosyasını IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String dosyaAdı) yöntemi.
Aşağıdaki örnek kod, C++ kullanarak bir Excel çalışma sayfasındaki bir hücre aralığının nasıl birleştirileceğini gösterir.
// Çıkış dizini yolu.
StringPtr outDir = new String("OutputDirectory\\");
// Giriş Excel dosyasını yükleyin
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Excel dosyasındaki ilk çalışma sayfasına erişin
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// A1 Hücresine veri girin.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Aralık oluştur
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Aralığı tek bir hücrede birleştir
range->Merge();
// Excel dosyasını kaydedin
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
C++ Kullanarak Bir Excel Çalışma Sayfasında Bir Hücre Aralığını Ayırın
Aşağıdakiler, bir Excel çalışma sayfasındaki bir hücre aralığını ayırma adımlarıdır.
- IWorkbook sınıfını kullanarak Excel dosyasını yükleyin.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) yöntemini kullanarak birleştirilmiş hücreleri içeren çalışma sayfasını alın.
- IWorksheet->GetICells()->CreateIRange(intrusiveptr) kullanarak aralığı oluşturun.Aspose::Cells::Systems::String adres) yöntemi.
- IRange->UnMerge() yöntemini kullanarak aralığı ayırın.
- Son olarak, çıktı Excel dosyasını IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String dosyaAdı) yöntemi.
Aşağıdaki örnek kod, C++ kullanarak bir Excel çalışma sayfasındaki bir hücre aralığının nasıl çözüleceğini gösterir.
// Kaynak dizin yolu.
StringPtr srcDir = new String("SourceDirectory\\");
// Çıkış dizini yolu.
StringPtr outDir = new String("OutputDirectory\\");
// Giriş Excel dosyasını yükleyin
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Excel dosyasındaki ilk çalışma sayfasına erişin
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Aralık oluştur
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Çözme aralığı
range->UnMerge();
// Excel dosyasını kaydedin
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
C++ Kullanarak Bir Excel Çalışma Sayfasında Adlandırılmış Aralığın Hücrelerini Birleştirme
Aspose.Cells for C++ ayrıca adlandırılmış bir aralığın hücrelerini birleştirme yeteneği de sağlar. Bunu başarmak için lütfen aşağıda verilen adımları izleyin.
- IWorkbook sınıfını kullanarak Excel dosyasını yükleyin.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) yöntemini kullanarak çalışma sayfasını alın.
- IWorksheet->GetICells()->CreateIRange(intrusiveptr) kullanarak aralığı oluşturun.Aspose::Cells::Systems::String adres) yöntemi.
- IRange->SetName(intrusiveptr) kullanarak aralığın adını ayarlayın.Aspose::Cells::Systems::String değer) yöntemi.
- Stiller oluşturun ve adlandırılmış aralığa uygulayın.
- IRange->Merge() yöntemini kullanarak adlandırılmış aralığın hücrelerini birleştirin.
- Son olarak, çıktı Excel dosyasını IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String dosyaAdı) yöntemi.
Aşağıdaki örnek kod, C++ kullanarak adlandırılmış bir aralığın hücrelerinin nasıl birleştirileceğini gösterir.
// Kaynak dizin yolu.
StringPtr srcDir = new String("SourceDirectory\\");
// Çıkış dizini yolu.
StringPtr outDir = new String("OutputDirectory\\");
// Giriş Excel dosyasını yükleyin
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Excel dosyasındaki ilk çalışma sayfasına erişin
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Aralık oluştur
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Aralık adını ayarla
range->SetName(new String("Named_Range"));
// Stil nesnesini tanımla
intrusive_ptr<IStyle> style = workbook->CreateIStyle();
// Yatay hizalamayı ayarla
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);
// StyleFlag nesnesi oluşturma
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();
// Yatay hizalamayı ayarla to true
styleFlag->SetHorizontalAlignment(true);
// Stili aralığa uygula
range->ApplyIStyle(style, styleFlag);
// Aralığa veri koy
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Birleştirme Aralığı
range->Merge();
// Excel dosyasını kaydedin
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
Ücretsiz Lisans Alın
Ücretsiz bir geçici lisans talep ederek API’yi değerlendirme sınırlamaları olmaksızın deneyebilirsiniz.
Çözüm
Bu makalede, C++ kullanarak bir Excel çalışma sayfasındaki hücreleri birleştirmeyi ve ayırmayı öğrendiniz. Ayrıca, Aspose.Cells for C++ API kullanarak aralıkları ve adlandırılmış aralıkları nasıl birleştireceğinizi ve ayıracağınızı gördünüz. API, resmi belgeleri ziyaret ederek ayrıntılı olarak keşfedebileceğiniz, Excel dosyalarıyla çalışmak için birçok ek özellik sağlar. Herhangi bir sorunuz olursa lütfen ücretsiz destek forumumuzdan bize ulaşmaktan çekinmeyin.