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:
| Method | Tillbaka 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överSetValueför direkt bokstavliga uppdrag -PutValuehar överbelastningar för alla primitiva typer. - Användning
GetStringValue()att återställa text utan typkonvertering; användning avGetValue().AsDouble()När du behöver numerisk precision. - Alltid ringa
SetFormulaför formelceller, intePutValue("=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
| Issue | Cause | Fixar |
|---|---|---|
GetValue() Återkommer tomt | Cell är inte skriven | Skriv ett värde med PutValue innan läsning |
| Formel som inte utvärderats | Formel sparas som sträng | Användning SetFormula(expr) I stället för PutValue(expr) |
| Mörka misslyckas | Invalid räckvidd dimensioner | Ensure endRow >= startRow och endColumn >= startColumn |
| Typer av missmatch på läsning | Kallat fel As*() Metod | Matchar tillbehöret med originalet PutValue Typ av |
API Referens sammanfattning
| Klass / Metod | Beskrivning |
|---|---|
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 |