C++ ile Kenarlık Ayarları

Hücrelere Kenarlık Eklemek

Microsoft Excel, hücreleri kenarlıklar ekleyerek biçimlendirmeye izin verir. Kenarlık tipi, eklendiği konuma göre değişir. Örneğin, üst kenarlık, hücrenin üst konumuna eklenmiş bir kenarlıktır. Kullanıcılar ayrıca kenarlıkların çizgi stilini ve rengini değiştirebilir.

Aspose.Cells ile geliştiriciler, sınırlar ekleyebilir ve bunları Microsoft Excel’de olduğu gibi esnek bir şekilde özelleştirebilirler.

Hücrelere Kenarlık Eklemek

Aspose.Cells, Microsoft Excel dosyasını temsil eden Workbook adlı bir sınıf sağlar. Workbook sınıfı, Excel dosyasındaki her sayfaya erişim sağlayan Worksheets koleksiyonunu içerir. Bir sayfa, Worksheet sınıfı ile temsil edilir. Worksheet sınıfı, Cells koleksiyonunu sağlar. Cells koleksiyonundaki her öğe, Cell sınıfının bir nesnesini temsil eder.

Aspose.Cells, GetStyle metodunu Cell sınıfında sağlar. SetStyle yöntemi, hücre biçimlendirme stilini ayarlamak için kullanılır. Style sınıfı, hücrelere kenarlık eklemek için özellikler sağlar.

Bir Hücreye Sınır Ekleme

Geliştiriciler, bir hücreye kenarlık eklemek için Style nesnesinin GetBorders() koleksiyonunu kullanabilir. Kenarlık türü, GetBorders() koleksiyonuna indeks olarak geçirilir. Tüm kenarlık türleri önceden tanımlanmış BorderType enum’unda yer alır.

Sınır numaralandırması

Kenar Tipleri Açıklama
AltKenarlık Alt kenar çizgisi
DiagonalAşağı Sol üstten sağ alt çapraz çizgi
DiagonalYukarı Sol alttan sağ üst çapraz çizgi
SolKenarlık Sol kenar çizgisi
SağKenarlık Sağ kenar çizgisi
ÜstKenarlık Üst kenar çizgisi

GetBorders() koleksiyonu tüm kenarlıkları depolar. GetBorders() koleksiyonundaki her kenarlık, Border nesnesi tarafından temsil edilir ve bu nesne, sırasıyla GetColor() ve GetLineStyle() özellikleri ile kenarlığın çizgi rengi ve stilini ayarlamayı sağlar.

Bir kenarlığın çizgi rengini ayarlamak için, Color enum’undan bir renk seçin ve bunu Kenarlık nesnesinin Color özelliğine atayın.

Kenarın çizgi stili, CellBorderType enum’undan bir çizgi stili seçilerek ayarlanır.

HücreSınırTürü numaralandırması

Çizgi Stilleri Açıklama
DashDot İnce kesik çizgi
DashDotDot İnce kesik noktali çizgi
Dashed Kesik çizgi
Dotted Noktalı çizgi
Double Çift çizgi
Hair Saç çizgisi
MediumDashDot Orta kalınlıkta kesik çizgi
MediumDashDotDot Orta kalınlıkta kesik noktali çizgi
MediumDashed Orta kalınlıkta kesik çizgi
None Hiçbir çizgi
Medium Orta kalınlıkta çizgi
SlantedDashDot Eğik orta kalınlıkta kesik çizgi
Thick Kalın çizgi
Thin İnce çizgi

Çizgi stillerinden birini seçin ve ardından onu Border nesnesinin GetLineStyle() özelliğine atayın.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    Workbook workbook;
    Worksheet worksheet = workbook.GetWorksheets().Get(0);
    Cell cell = worksheet.GetCells().Get(u"A1");
    cell.PutValue(u"Visit Aspose!");

    Style style = cell.GetStyle();

    style.GetBorders().Get(BorderType::TopBorder).SetLineStyle(CellBorderType::Thick);
    style.GetBorders().Get(BorderType::TopBorder).SetColor(Color::Black());

    style.GetBorders().Get(BorderType::BottomBorder).SetLineStyle(CellBorderType::Thick);
    style.GetBorders().Get(BorderType::BottomBorder).SetColor(Color::Black());

    style.GetBorders().Get(BorderType::LeftBorder).SetLineStyle(CellBorderType::Thick);
    style.GetBorders().Get(BorderType::LeftBorder).SetColor(Color::Black());

    style.GetBorders().Get(BorderType::RightBorder).SetLineStyle(CellBorderType::Thick);
    style.GetBorders().Get(BorderType::RightBorder).SetColor(Color::Black());

    cell.SetStyle(style);

    workbook.Save(outDir + u"book1.out.xls");
    std::cout << "Excel file saved successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}

Hücre Aralığına Sınırlar Ekleme

Sadece bir hücre yerine hücre aralığına da sınırlar eklemek mümkündür. Bunu yapmak için önce, Cells koleksiyonunun CreateRange yöntemini çağırarak bir hücre aralığı oluşturun. Aşağıdaki parametreleri alır:

  • İlk Sütun, aralığın ilk sütunu.
  • İlk Sütun, aralığın ilk sütunu.
  • Satır Sayısı, aralıktaki satır sayısı.
  • Sütun Sayısı, aralıktaki sütun sayısı.

CreateRange yöntemi, belirtilen hücre aralığını içeren bir Range nesnesi döner. Range nesnesi, aşağıdaki parametreleri alan bir SetOutlineBorder yöntemi sağlar ve hücre aralığına sınır ekler:

  • Sınır Türü, BorderType enumerasyonundan seçilen sınır tipi.
  • Çizgi Stili, sınır çizgi stili, CellBorderType enumerasyonundan seçilir.
  • Renk, Renk sıralamasından seçilen çizgi rengi.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Create workbook
    Workbook workbook;

    // Obtain the reference of the first (default) worksheet
    Worksheet worksheet = workbook.GetWorksheets().Get(0);

    // Accessing the "A1" cell from the worksheet
    Cell cell = worksheet.GetCells().Get(u"A1");

    // Adding some value to the "A1" cell
    cell.PutValue(u"Hello World From Aspose");

    // Creating a range of cells starting from "A1" cell to 3rd column in a row
    Range range = worksheet.GetCells().CreateRange(0, 0, 1, 3);

    // Adding a thick top border with blue line
    range.SetOutlineBorder(BorderType::TopBorder, CellBorderType::Thick, Color::Blue());

    // Adding a thick bottom border with blue line
    range.SetOutlineBorder(BorderType::BottomBorder, CellBorderType::Thick, Color::Blue());

    // Adding a thick left border with blue line
    range.SetOutlineBorder(BorderType::LeftBorder, CellBorderType::Thick, Color::Blue());

    // Adding a thick right border with blue line
    range.SetOutlineBorder(BorderType::RightBorder, CellBorderType::Thick, Color::Blue());

    // Saving the Excel file
    workbook.Save(outDir + u"book1.out.xls");

    std::cout << "Excel file created successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}