Робота з клітинами та моделью даних

Робота з клітинами та моделью даних

Робота з клітинами та моделью даних

У. 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(), що повертає CellValue об’єкт. Переведення до конкретного типу за допомогою відповідного аксесуара:

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

У. CellValue клас забезпечує типовані аксесори:

MethodТип повернення
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();

Поради та найкращі практики

  • Prefer PutValue перевершено SetValue для прямого буквального призначення PutValue має перевантаження для всіх примітивних типів.
  • Використання GetStringValue() для отримання тексту без конвертації типу; використання GetValue().AsDouble() коли вам потрібна точність.
  • Завжди звоніть. SetFormula для формульних ячейків, не PutValue("=SUM(...)") останній зберігає буквальний ряд, а не формулу.
  • Використання CellArea::CreateCellArea(start, end) для створення об’єктів діапазону для операцій зліття та форматизації.

Загальні питання

IssueCauseВиправлення
GetValue() повертає порожнєКлетка не написана.Напишіть значення з: PutValue перед читанням
Формула не оціненаФормула збережена як ряд .Використання SetFormula(expr) замість PutValue(expr)
Злиття не відбулосяНедійсні розміри діапазонуEnsure endRow >= startRow і endColumn >= startColumn
Невідповідність типу на читанніПогано дзвонити. As*() методЗбігайте аксессуар з оригіналом. PutValue тип

Реферат на API

Клас/методDescription
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)Злиття прямокутного діапазону

See Also

 Українська