Werken met Cells en het Data Model

Werken met Cells en het Data Model

Werken met cellen en het gegevensmodel

De Cell klasse is de primaire interface voor het lezen en schrijven van individuele spreadsheetcelwaarden, formules en stijlen. Toegang tot een cel krijg je via de Cells collectie van het werkblad met behulp van een adresreeks.


Waarden naar cellen schrijven

Gebruik Cell::PutValue om tekst, getallen, booleans of datums naar een cel te schrijven:

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

using namespace Aspose::Cells_FOSS;

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

    sheet.GetCells()["A1"].PutValue("Product");
    sheet.GetCells()["B1"].PutValue("Price");
    sheet.GetCells()["A2"].PutValue("Widget");
    sheet.GetCells()["B2"].PutValue(9.99);
    sheet.GetCells()["C2"].PutValue(true);

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

Formules instellen

Gebruik Cell::SetFormula(formula) om een Excel-compatibele formule te schrijven. Formules worden geëvalueerd door Excel of compatibele lezers wanneer het bestand wordt geopend.

sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");
sheet.GetCells()["C4"].SetFormula("=AVERAGE(B2:B3)");

Celwaarden lezen

Lees de huidige waarde van een cel met Cell::GetValue(), die een CellValue object teruggeeft. Converteer naar een specifiek type met de juiste accessor:

CellValue val = sheet.GetCells()["B2"].GetValue();
double price = val.AsDouble();
std::string text = sheet.GetCells()["A2"].GetStringValue();

De CellValue klasse biedt getypeerde accessors:

MethodeRetourtype
AsDouble()double
AsInteger()int
AsBool()bool
AsString()std::string
AsDateTime()DateTime

Cellen benaderen op rij en kolom

Naast adresstrings kun je cellen benaderen met nul-gebaseerde rij- en kolomindices:

// Address string
Cell& cellA1 = sheet.GetCells()["A1"];

// Row/column index (0-based)
int row = cellA1.GetRow();
int col = cellA1.GetColumn();

Cellen samenvoegen

Gebruik Cells::Merge om een rechthoekig bereik van cellen tot één cel samen te voegen:

CellArea area = CellArea::CreateCellArea("A1", "C1");
sheet.GetCells().Merge(area.StartRow, area.StartColumn,
                       area.EndRow - area.StartRow + 1,
                       area.EndColumn - area.StartColumn + 1);

Weergavetekst ophalen

Om de celwaarde op te halen als opgemaakte weergavetekst (toepassing van getalformaten), gebruik je Cell::GetDisplayStringValue():

std::string display = sheet.GetCells()["B2"].GetDisplayStringValue();

Tips en Best Practices

  • Geef de voorkeur aan PutValue boven SetValue voor directe letterlijke toewijzingen — PutValue heeft overloads voor alle primitieve types.
  • Gebruik GetStringValue() om tekst op te halen zonder typeconversie; gebruik GetValue().AsDouble() wanneer je numerieke precisie nodig hebt.
  • Roep altijd SetFormula aan voor formulecellen, niet PutValue("=SUM(...)") — de laatste slaat een stringliteral op, geen formule.
  • Gebruik CellArea::CreateCellArea(start, end) om bereikobjecten te bouwen voor samenvoeg- en opmaakbewerkingen.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
GetValue() retourneert leegCel is niet geschrevenSchrijf een waarde met PutValue voordat je leest
Formule niet geëvalueerdFormule opgeslagen als stringGebruik SetFormula(expr) in plaats van PutValue(expr)
Samenvoegen misluktOngeldige bereikafmetingenZorg ervoor dat endRow >= startRow en endColumn >= startColumn
Type-mismatch bij lezenVerkeerde As*()-methode aanroepenKoppel de accessor aan het oorspronkelijke PutValue-type

API Reference Samenvatting

Klasse/MethodeBeschrijving
Cell::PutValue(value)Schrijf een letterlijke waarde naar de cel
Cell::SetFormula(formula)Stel een Excel-formuletekenreeks in
Cell::GetValue()Haal de celwaarde op als een CellValue
Cell::GetStringValue()Haal de celwaarde op als een string
Cell::GetDisplayStringValue()Haal de geformatteerde weergave-string op
Cell::GetRow()Haal de nulgebaseerde rij-index op
Cell::GetColumn()Haal de nulgebaseerde kolomindex op
Cell::GetStyle()Haal de huidige celstijl op
Cell::SetStyle(style)Pas een gewijzigde stijl toe op de cel
CellValue::AsDouble()Converteer celwaarde naar double
CellValue::AsString()Converteer celwaarde naar string
Cells::Merge(row, col, rows, cols)Voeg een rechthoekig bereik samen

Zie ook

 Nederlands