Giriş

Aspose.Cells FOSS for C++, Microsoft Excel veya herhangi bir COM otomasyonu gerektirmeden, yerel C++ kodundan Excel .xlsx çalışma kitapları oluşturmak, yüklemek, düzenlemek ve kaydetmek için açık kaynaklı bir kütüphanedir. CMake tabanlı bir derlemeye kaynak kütüphane olarak entegre olur — C++ standart kütüphanesi dışında kurulacak veya bağlanacak harici bir çalışma zamanı bağımlılığı yoktur.

Bu kütüphane MIT lisanslıdır ve C++17’yi hedefler. vcpkg veya Conan gibi bir paket yöneticisi üzerinden dağıtılmadığından, bir git klonundan add_subdirectory veya FetchContent ile derlenir. API yüzeyi, bir Workbook etrafında düzenlenmiştir; bu Workbook, bir WorksheetCollection sahibi olur, çalışma sayfaları hücre düzeyinde erişim için bir Cells nesnesi sunar ve yazı tipleri, doldurular ve kenarlıklar için bir Style dış görünüm sağlar. C++ ile arka uç hizmetleri, rapor oluşturucular veya veri dışa aktarım boru hatları geliştiriyorsanız ve Excel’e başvurmadan .xlsx dosyaları üretmeniz veya okumanız gerekiyorsa, bu kütüphane size yerel bir yol sunar.

Aspose.Cells FOSS, .NET, Go, Java, Python, Rust ve TypeScript için de mevcuttur. C++ kütüphanesi, ailenin geri kalanıyla aynı yaklaşımı izler: gerçekte uygulanmış olan üzerine kurulu, XLSX odaklı bir API ve izin verici bir lisans altında.


Neler Dahildir

Çalışma Kitabı ve Çalışma Sayfası Yapısı

Bir Workbook, bir çalışma sayfası ile başlar. Ek sayfalar WorksheetCollection::Add ile oluşturulur ve mevcut sayfalara koleksiyonun indeksleyicisi aracılığıyla indeks ya da ad ile erişilir. Her Worksheet, hücrelerini GetCells() aracılığıyla ortaya çıkarır.

#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"

using namespace Aspose::Cells_FOSS;

Workbook workbook;
workbook.GetWorksheets()[0].SetName("Data");
workbook.GetWorksheets().Add("Summary");

Worksheet& data = workbook.GetWorksheets()["Data"];
data.GetCells()["A1"].PutValue("Product");
data.GetCells()["B1"].PutValue("Price");

Hücre Değerleri, Formüller ve Sayı Biçimleri

Cell::PutValue dizeler, tamsayılar, çiftler, boole’lar ve diğer değer türleri için aşırı yüklemelere sahiptir, bu nedenle manuel dize dönüşümüne gerek yoktur. SetFormula başında = olan ya da olmayan bir formül kabul eder ve normalleştirir; GetType daha sonra Formula‘in bir CellValueType‘ini rapor eder. Sayı biçimlendirme Style::SetNumberFormat aracılığıyla uygulanır ve yalnızca GetDisplayStringValue tarafından döndürülen görüntü metnini etkiler — temel depolanan değer değişmez.

auto& sheet = workbook.GetWorksheets()[0];
auto cell = sheet.GetCells()["B2"];
cell.PutValue(1234.567);

auto style = cell.GetStyle();
style.SetNumberFormat("#,##0.00");
cell.SetStyle(style);

sheet.GetCells()["B3"].SetFormula("B2*2");
// GetFormula() now returns "=B2*2"; GetType() reports CellValueType::Formula

std::cout << cell.GetDisplayStringValue() << std::endl; // "1,234.57"

Yazı Tipleri, Dolgu ve Kenarlıklarla Stil Verme

Cell::GetStyle() ve SetStyle(), Font, Borders ve dolgu ayarlarını gruplayan bir Style nesnesini okur ve yazar. Renkler Color::FromArgb ile oluşturulur ve dolgu desenleri FillPattern aracılığıyla ayarlanır.

Style headerStyle = sheet.GetCells()["A1"].GetStyle();
Font font;
font.SetBold(true);
font.SetColor(Color::FromArgb(255, 255, 255, 255));
headerStyle.SetFont(font);
headerStyle.SetPattern(FillPattern::Solid);
headerStyle.SetForegroundColor(Color::FromArgb(255, 34, 120, 212));
sheet.GetCells()["A1"].SetStyle(headerStyle);

Veri Doğrulama ve Koşullu Biçimlendirme

ValidationCollection::Add, bir Validation kuralını bir CellArea‘ye uygular; ValidationType‘ünü List olarak ve Formula1 değerini ayarlamak, hücre içi bir açılır menü üretir. ConditionalFormattingCollection::Add, AddArea ile kapsamlandırılmış ve AddCondition ile doldurulmuş bir biçimlendirme grubu oluşturur; bu grup bir FormatConditionType, bir OperatorType ve bir ya da iki formül alır.

int validationIndex = sheet.GetValidations().Add(CellArea::CreateCellArea("B1", "B3"));
auto validation = sheet.GetValidations()[validationIndex];
validation.SetType(ValidationType::List);
validation.SetFormula1("\"Open,Closed\"");
validation.SetShowError(true);

int cfIndex = sheet.GetConditionalFormattings().Add();
auto formatting = sheet.GetConditionalFormattings()[cfIndex];
formatting.AddArea(CellArea::CreateCellArea("C1", "C3"));
int conditionIndex = formatting.AddCondition(
    FormatConditionType::CellValue, OperatorType::Between, "1", "9");

auto condition = formatting[conditionIndex];
auto conditionStyle = condition.GetStyle();
conditionStyle.SetPattern(FillPattern::Solid);
conditionStyle.SetForegroundColor(Color::FromArgb(255, 255, 199, 206));
condition.SetStyle(conditionStyle);

Sayfa Ayarı ve Yazdırma Düzeni

Worksheet::GetPageSetup(), kağıt boyutu, yönelim, ölçekleme, yazdırma alanı ve yazdırma başlık satırları/sütunlarını kontrol eden bir PageSetup nesnesi döndürür. Değerler atama sırasında doğrulanır — örneğin, kapsam dışı bir SetScale çağrısı bir CellsException oluşturur.

auto& pageSetup = sheet.GetPageSetup();
pageSetup.SetOrientation(PageOrientationType::Landscape);
pageSetup.SetPaperSize(PaperSizeType::PaperA4);
pageSetup.SetFitToPagesWide(1);
pageSetup.SetFitToPagesTall(3);
pageSetup.SetPrintArea("$A$1:$D$20");
pageSetup.SetPrintTitleRows("$1:$2");

Hızlı Başlangıç

Aspose.Cells FOSS for C++ bir paket yöneticisi üzerinden dağıtılmamaktadır — depoyu klonlayın ve CMake projenize ekleyin:

git clone https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Cpp.git

Kütüphaneyi kendi CMakeLists.txt alt dizininize ekleyin ve aspose_cells_foss hedefine bağlayın:

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp/Aspose.Cells.Foss.Cpp)
target_link_libraries(MyApp PRIVATE aspose_cells_foss)

Ardından bir çalışma kitabı oluşturun, biçimlendirin ve kaydedin:

#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/Cell.h"
#include "aspose/cells_foss/Style.h"
#include "aspose/cells_foss/Font.h"
#include "aspose/cells_foss/Color.h"

using namespace Aspose::Cells_FOSS;

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];
    sheet.SetName("Products");

    sheet.GetCells()["A1"].PutValue("Product");
    sheet.GetCells()["B1"].PutValue("Price");
    sheet.GetCells()["A2"].PutValue("Apple");
    sheet.GetCells()["B2"].PutValue(2.99);
    sheet.GetCells()["A3"].PutValue("Orange");
    sheet.GetCells()["B3"].PutValue(1.99);
    sheet.GetCells()["B4"].SetFormula("SUM(B2:B3)");

    Style header = sheet.GetCells()["A1"].GetStyle();
    Font font;
    font.SetBold(true);
    header.SetFont(font);
    sheet.GetCells()["A1"].SetStyle(header);

    workbook.Save("products.xlsx");
    return 0;
}

Desteklenen Biçimler

FormatUzantıOkuYaz
XLSX.xlsx✓✓

XLSX, mevcut sürümün okuduğu ve yazdığı tek formattır. Workbook‘ın dosya ve akış yapıcıları .xlsx verilerini yükler ve Save bunu geri yazar; LoadFormat ve SaveFormat enumları bu çağrılarda açık format seçimini yönetir.


Açık Kaynak & Lisanslama

Aspose.Cells FOSS for C++ MIT lisanslıdır. Tam kaynak kodu GitHub üzerinde mevcuttur ve lisans ticari kullanım, değişiklik ve yeniden dağıtımı izin verir.


Başlarken

İlgili Kaynaklar