Работа с клетки и модел на данни

Работа с клетки и модел на данни

Работа с клетки и модел на данни

Съветът на ЕС Cell class е основният интерфейс за четене и записване на индивидуални стойности, формули и стилове в таблицата. Достъп до клетка чрез функциите на работния лист Cells събиране на данни с помощта на адресна нишка.


Написване на стойности в клетки

Използване на: Cell::PutValue за да напише текст, числа, булеви или дати в клетка:

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

Настройка на формули

Използване на: Cell::SetFormula(formula) Формулите се оценяват от Excel или съвместими читатели, когато файлът е отворен.

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

Четене на стойностите в клетката

Прочетете текущата стойност на клетка с: Cell::GetValue(), което връща a CellValue преобразуване на конкретен тип с помощта на подходящия аксесоар:

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

Съветът на ЕС CellValue класът предоставя типирани аксесори:

Методът:Тип на връщане
AsDouble()double
AsInteger()int
AsBool()bool
AsString()std::string
AsDateTime()DateTime

Достъп до клетки по ред и колона

В допълнение към адресни редове, достъпни клетки с индекси на ред и колона въз основа на нула:

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

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

Сливане на клетки

Използване на: Cells::Merge за сливане на правоъгълна група клетки в една:

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

Получаване на текст от дисплея

За да изтеглите стойността на клетката като форматиран текст (прилагайки числови формати), използвайте Cell::GetDisplayStringValue():

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

Съвети и най-добри практики

  • Препоръчвам: PutValue Преминаване SetValue за директни буквални задания PutValue има претоварване за всички примитивни типове.
  • Използване на: GetStringValue() да изтегля текст без конвертиране на тип; използване GetValue().AsDouble() когато се нуждаете от числова точност.
  • Винаги звъни. SetFormula за клетките на формулата, не PutValue("=SUM(...)") в последния се съхранява буквален ред, а не формула.
  • Използване на: CellArea::CreateCellArea(start, end) да създава обекти на диапазона за операции по сливане и форматиране.

Общи проблеми

ИзданиеПричина за товаРемонтиране
GetValue() връща празноКлетка не е написана.Напишете стойност с: PutValue преди четенето.
Формула не е оцененаФормула запазена като нишкаИзползване на: SetFormula(expr) вместо: PutValue(expr)
Сливане не успяваНевалидни размери на диапазонаОсигуряване на endRow >= startRow и в) endColumn >= startColumn
Несъответствие на типа при четенеНеправилно обаждане. As*() метод на обработкаСъвпадение на аксесоара с оригинала. PutValue тип на съоръжение

Снимка на API референтна информация

Клас/методОписание на състоянието
Cell::PutValue(value)Напишете буквално значение в клетката.
Cell::SetFormula(formula)Определете ред на формули в Excel
Cell::GetValue()Извличане на стойността в клетка като CellValue
Cell::GetStringValue()Извличане на стойността в клетка като нишка
Cell::GetDisplayStringValue()Извличане на форматирания нисък показател
Cell::GetRow()Получи индекса на реда, базиран на нула.
Cell::GetColumn()Вземете индекса на колоните с нулева база.
Cell::GetStyle()Вземете текущия стил на клетката
Cell::SetStyle(style)Прилагане на променен стил към клетката
CellValue::AsDouble()Преобразуване на стойността на клетката в двойна стойност
CellValue::AsString()Преобразуване на стойност в клетка към нишка
Cells::Merge(row, col, rows, cols)Сливане на правоъгълна диапазона

Вижте също:

 Български