Skip to content

krsich/cpp-spreadsheet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Электронная таблица SpreadSheet

Реализация интерфейса электронной таблицы

Функциональность

  • Динамический полиморфизм
  • Работа с формулами с помощью синтаксического дерева ANTLR
  • Защита от циклических зависимостей

Принцип работы

Работа с формулами в ячейках на листе

sheet->SetCell("A1"_pos, "2");
sheet->SetCell("C3"_pos, "=A1+10");
auto* cell_E5_ptr = sheet->GetCell("C3"_pos);
Реализованные ошибки * `#DIV0!` - деление на ноль * `#VALUE!` - если операнд содержит текст, а не числовое значение. * `#REF!` - если обращение идет к ячейке (ссылка) за пределами Листа (sheet) * `При конструировании формулы с циклической ссылкой выбрасывается исключение`

Требования

C++17, Java SE Runtime Environment 8, ANTLR, CMake

Сборка

  1. Установить ANTLR
  2. Актуализировать версию ANTLR:
    • Открыть файлы FindANTLR.cmake и CMakeLists.txt
    • Для «antlr-***-complete.jar» указать нужную версию
  3. Разместить в папке «antlr4_runtime» файлы для работы C++
  4. Запустить CMake

Планы по доработке

  • Добавить графический интерфейс (Qt/GTK)

About

Интерфейс таблицы SpreadSheet

Topics

Resources

Stars

Watchers

Forks