Lucrarea cu celulele și modelul de date

Lucrarea cu celulele și modelul de date

Lucrarea cu celulele și modelul de date

În ceea ce priveşte Cell class este interfața principală pentru citirea și scrierea valorilor, formulelor și stilurilor celulelor individuale ale fișei de calcul. Acces la o celulă prin intermediul fișierului de lucru Cells colectarea folosind o șir de adrese.


Scrierea valorilor în celule

Utilizare: Cell::PutValue pentru a scrie text, numere, boolean sau date într-o celulă:

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

Setarea formulelor

Utilizare: Cell::SetFormula(formula) Excel sau cititorii compatibili evaluează formulele atunci când se deschide fișierul.

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

Citirea valorilor celulei

Citeste valoarea curentă a unei celule cu: Cell::GetValue(), care returnează o CellValue Obiect. Convertiti la un tip specific folosind accesorul corespunzator:

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

În ceea ce priveşte CellValue clasa oferă accesorii tipati:

Metoda de evaluareTip de returnare
AsDouble()double
AsInteger()int
AsBool()bool
AsString()std::string
AsDateTime()DateTime

Accesarea celulelor pe rând și coloană

În plus față de șirurile de adrese, celulele de acces prin indici ale rândurilor și coloanelor bazate pe zero:

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

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

Celule care fuzionează

Utilizare: Cells::Merge pentru a uni o gamă rectangulară de celule într-una:

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

Obținerea textului de afișare

Pentru a obține valoarea celulei ca text formatat (aplicând formate de numere), utilizați Cell::GetDisplayStringValue():

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

Sfaturi şi cele mai bune practici

  • Preferă PutValue Încheiat. SetValue pentru atribuții directe PutValue are supraîncărcări pentru toate tipurile primitive.
  • Utilizare: GetStringValue() pentru a recupera text fără conversie de tip; utilizați GetValue().AsDouble() când ai nevoie de precizie numerică.
  • Întotdeauna sună. SetFormula pentru celulele formulare, nu PutValue("=SUM(...)") acesta din urmă stochează un literal de șir, nu o formulă.
  • Utilizare: CellArea::CreateCellArea(start, end) pentru a construi obiecte de gamă pentru operațiuni de fuziune și formatare.

Probleme comune

Numărul de dateCauzaFixare
GetValue() returnează golCelula nu a fost scrisă.Scrie o valoare cu: PutValue înainte de citire.
Formula nu a fost evaluatăFormula salvată ca șirUtilizare: SetFormula(expr) în loc de: PutValue(expr)
Fusionare eşuatăDimensiuni de gamă nevalideAsigurarea endRow >= startRow și de: endColumn >= startColumn
Neconcordanță de tip la citireSună greşit. As*() metodă de evaluareSe potriveşte accesorul cu originalul . PutValue tip de

Rezultatele de la data aplicării.

Clasa/MetodaDescriere:
Cell::PutValue(value)Scrie o valoare literală în celulă.
Cell::SetFormula(formula)Setare a unei șiruri de formule Excel
Cell::GetValue()Obțineți valoarea celulei ca o CellValue
Cell::GetStringValue()Obține valoarea celulei ca o șiră
Cell::GetDisplayStringValue()Obține șirul formatat de afișare
Cell::GetRow()Obțineți indicele rândului pe bază de zero
Cell::GetColumn()Obțineți indexul de coloană pe bază de zero
Cell::GetStyle()Obține stilul actual al celulei
Cell::SetStyle(style)Aplica un stil modificat la celulă
CellValue::AsDouble()Convertează valoarea celulei la dublu
CellValue::AsString()Convertează valoarea celulei în șir
Cells::Merge(row, col, rows, cols)Merge o gamă dreptunghiulară

Vezi și:

 Română