Позволяет задавать значения ячеек, ссылаться на другие ячейки и проверять циклические зависимости. Проверяет корректность содержимого и кэширует вычисленные значения.
Для сборки и запуска проекта необходимы:
- версия С++17 или выше,
- CMake версии 3.8 или выше,
- библиотека ANTLR версии 4.12.0 или выше. Файлы для скачивания можно найти на github.
В корне проекта (рядом с CMakeLists.txt
) создайте папку antlr4_runtime
. Распакуйте в нее содержимое архива antlr4-cpp-runtime-*-source.zip
.
У вас получится следующая структура проекта:
spreadsheet/
├── antlr4_runtime/
│ ├── cmake/
│ ├── runtime/
│ ├── CMakeLists.txt
│ └── Остальное содержимое архива antlr4-cpp-runtime-*-source.zip.
├── build/
├── antlr-*-complete.jar
├── CMakeLists.txt
├── FindANTLR.cmake
├── Formula.g4
└── Файлы *.cpp и *.h.
Перейдите в папку build
и выполните команду:
cmake ../
cmake --build .
С принципами работы можно ознакомиться в файле main.cpp
, ознакомившись с тестами.
Для использования таблицы необходимо подключить заголовочный файл:
#include "common.h"
Примеры использования:
std::unique_ptr<SheetInterface> sheet = CreateSheet();
- создает таблицу.sheet->SetCell(Position::FromString("A1"), "1");
- задает ячейке A1 числовое значение 1.sheet->GetCell(Position::FromString("A1"))->GetText();
- возвращает текстовое значение ячейки.sheet->GetCell(Position::FromString("A1"))->GetValue();
- возвращает числовое значение ячейки.sheet->GetPrintableSize();
- возвращает размер печатаемой области.sheet->PrintTexts(output);
- выводит текстовое значение ячеек в поток выводаoutput
.sheet->PrintValues(output);
- выводит числовое значение ячеек в поток выводаoutput
.