Rad s ćelijama i modelom podataka
Rad s ćelijama i modelom podataka
U skladu s člankom 1. Cell class je primarni sučelje za čitanje i pisanje pojedinačnih vrijednosti stanica, formula i stilova u pregledniku. Pristupite ćeliji putem radnog lista Cells zbirka pomoću niza adresa.
Zapisivanje vrijednosti u stanice
Upotreba: Cell::PutValue za pisanje teksta, brojeva, booleanskih ili datuma u ćeliju:
#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;
}Postavljanje formula
Upotreba: Cell::SetFormula(formula) Formula se procjenjuje od strane Excel-a ili kompatibilnih čitatelja kada je datoteka otvorena.
sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");
sheet.GetCells()["C4"].SetFormula("=AVERAGE(B2:B3)");Čitanje vrijednosti stanica
Pročitajte trenutnu vrijednost ćelije s: Cell::GetValue(), što vraća: CellValue pretvoriti u specifičan tip pomoću odgovarajućeg dodatka:
CellValue val = sheet.GetCells()["B2"].GetValue();
double price = val.AsDouble();
std::string text = sheet.GetCells()["A2"].GetStringValue();U skladu s člankom 1. CellValue Klasa daje tipirane dodatke:
| Metoda: | Vrsta povratka |
|---|---|
AsDouble() | double |
AsInteger() | int |
AsBool() | bool |
AsString() | std::string |
AsDateTime() | DateTime |
Pristup stanicama po redovima i stupcima
U skladu s člankom 2. stavkom 1. točkom (a) i podstavkom 3. stavku 1. točke (b) ovog članka, ako je primjenjivo:
// Address string
Cell& cellA1 = sheet.GetCells()["A1"];
// Row/column index (0-based)
int row = cellA1.GetRow();
int col = cellA1.GetColumn();Spojeni stanice
Upotreba: Cells::Merge U ovom slučaju, u skladu s člankom 77. stavkom 1. točkom (a) Uredbe (EU) br. 575/2013.:
CellArea area = CellArea::CreateCellArea("A1", "C1");
sheet.GetCells().Merge(area.StartRow, area.StartColumn,
area.EndRow - area.StartRow + 1,
area.EndColumn - area.StartColumn + 1);Prikupljanje teksta na prikazu
Da biste dobili vrijednost ćelije kao formatirani tekst prikaza (primenjuje se brojni format), koristite Cell::GetDisplayStringValue():
std::string display = sheet.GetCells()["B2"].GetDisplayStringValue();Savjeti i najbolje prakse
- Prefer
PutValueprelazitiSetValueza direktne doslovne zadatkePutValueima preopterećenja za sve primitivne tipove. - Upotreba:
GetStringValue()za preuzimanje teksta bez pretvaranja tipa; koristitiGetValue().AsDouble()Kada vam je potrebna numerička preciznost. - Uvijek nazovi.
SetFormulaza ćelije formule, nePutValue("=SUM(...)")u ovom tekstu se čuva struna, a ne formula. - Upotreba:
CellArea::CreateCellArea(start, end)za izgradnju objekata opsega za operacije spajanja i formiranja.
Zajednički problemi
| Izdavanje | Uzrok | Popraviti |
|---|---|---|
GetValue() vraća prazna | Celu nije napisano. | Napišite vrijednost s: PutValue prije čitanja. |
| Formula nije procijenjena | Formula sačuvana kao niz | Upotreba: SetFormula(expr) umjesto: PutValue(expr) |
| Neuspješno spajanje | Neispravne dimenzije opsega | Osigurati endRow >= startRow i u članku 1. endColumn >= startColumn |
| Neispravnost tipa na čitanju | Pogrešno pozivanje. As*() metoda | Prikladno sastojanje s originalnim. PutValue tip: |
Svrha referentnog API-a
| Sredstva za ispitivanje i provedbu | Opisivanje |
|---|---|
Cell::PutValue(value) | Napišite doslovnu vrijednost u ćeliju. |
Cell::SetFormula(formula) | Postavi niz Excelove formule |
Cell::GetValue() | Prikupiti vrijednost ćelije kao: CellValue |
Cell::GetStringValue() | Prikupiti vrijednost ćelije kao niz. |
Cell::GetDisplayStringValue() | Pronaći formattirani niz prikaza |
Cell::GetRow() | Dobijte indeks redova na osnovi nula. |
Cell::GetColumn() | Dobijte indeks stupca na osnovi nula |
Cell::GetStyle() | Dobijte trenutni stil ćelije |
Cell::SetStyle(style) | Primjeniti modifikovani stil u ćeliji |
CellValue::AsDouble() | Preusmjeriti vrijednost ćelije na dvostruko |
CellValue::AsString() | Preusmjeriti vrijednost ćelije u niz |
Cells::Merge(row, col, rows, cols) | Spojiti pravougaoni raspon |