Arbeta med celler och datamodell

Arbeta med celler och datamodell

Arbeta med celler och datamodell

Den Cell klass är det primära gränssnittet för att läsa och skriva enskilda spreadsheet cells värden, formler och stilar. Cells Samla med en adresssträng.


Skriv värden till cellerna

Användning Cell::PutValue för att skriva text, siffror, boolean eller datum till en cell:

#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;
}

Ställa in formler

Användning Cell::SetFormula(formula) formulär utvärderas av Excel eller kompatibla läsare när filen öppnas.

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

Läs cellvärden

Läs den aktuella värdet av en cell med Cell::GetValue(),som återvänder till A CellValue Konvertera till en specifik typ med hjälp av lämplig accessor:

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

Den CellValue Klass ger typiserade tillbehör:

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

Tillgång celler genom runda och kolumner

Förutom adress strängar, åtkomst celler med nollbaserad rad och kolumnindex:

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

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

Smörjande celler

Användning Cells::Merge för att kombinera ett rektangulärt spektrum av celler i en:

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

Få display text

För att återta cellvärdet som formatad displaytext (applicera siffrorformat), använd Cell::GetDisplayStringValue():

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

Tips och bästa praxis

  • Prefer PutValue över SetValue för direkt bokstavliga uppdrag - PutValue har överbelastningar för alla primitiva typer.
  • Användning GetStringValue() att återställa text utan typkonvertering; användning av GetValue().AsDouble() När du behöver numerisk precision.
  • Alltid ringa SetFormula för formelceller, inte PutValue("=SUM(...)") - den senare lagrar en bokstavlig sträng, inte en formel.
  • Användning CellArea::CreateCellArea(start, end) att bygga intervallobjekt för fusion och formatering.

Vanliga frågor

IssueCauseFixar
GetValue() Återkommer tomtCell är inte skrivenSkriv ett värde med PutValue innan läsning
Formel som inte utvärderatsFormel sparas som strängAnvändning SetFormula(expr) I stället för PutValue(expr)
Mörka misslyckasInvalid räckvidd dimensionerEnsure endRow >= startRow och endColumn >= startColumn
Typer av missmatch på läsningKallat fel As*() MetodMatchar tillbehöret med originalet PutValue Typ av

API Referens sammanfattning

Klass / MetodBeskrivning
Cell::PutValue(value)Skriv ett bokstavligt värde till cellen
Cell::SetFormula(formula)Ställ in en Excel formel sträng
Cell::GetValue()återställ cellvärdet som ett CellValue
Cell::GetStringValue()Återställ cellvärdet som en sträng
Cell::GetDisplayStringValue()Återställ den formaterade displaysträngen
Cell::GetRow()Få nollbaserad radindex
Cell::GetColumn()Få nollbaserad kolumnindex
Cell::GetStyle()Få den aktuella cellstilen
Cell::SetStyle(style)Applicera en modifierad stil till cellen
CellValue::AsDouble()Konvertera cellvärde till dubbel
CellValue::AsString()Konvertera cellvärde till sträng
Cells::Merge(row, col, rows, cols)Förbättra ett rektangulärt område

Se även

 Svenska