Skip to content
This repository has been archived by the owner on Jul 5, 2024. It is now read-only.

Копирование ячейки #17

Closed
SimpleCreations opened this issue Aug 19, 2017 · 1 comment
Closed

Копирование ячейки #17

SimpleCreations opened this issue Aug 19, 2017 · 1 comment
Assignees

Comments

@SimpleCreations
Copy link
Contributor

Предварительно должна быть выполнена задача об относительных и абсолютных адресах строк и столбцов ячеек.

  • Реализуем метод move(fromRow, fromColumn, toRow, toColumn) класса Spreadsheet._CellReference. Он возвращает новый Spreadsheet._CellReference, в котором:
    • Если в исходной ссылке строка не фиксированная, индекс строки изменён на toRow - fromRow;
    • Если в исходной ссылке столбец не фиксированный, индекс столбца изменён на toColumn - fromColumn;
    • rowFixed и columnFixed имеют такие же значения.
  • Переопределяем метод toString класса Spreadsheet._Expression. Это метод "собирает" разобранное выражение обратно в строку-формулу.
  • Определяем метод generateFormula класса Spreadsheet._Cell. Он преобразует поле expression в строку и кладёт её в formula.
  • Разделяем метод setFormula на два: setFormula(i, j, formula) и setExpression(i, j, expression). Второй устанавливает пропарсенное выражение и используется в первом.
  • Реализуем метом copyCell(fromRow, fromColumn, toRow, toColumn) класса Spreadsheet. Он копирует expression из ячейки с первыми координатами рекурсивно, заменяя все _CellReference на .move(fromRow, fromColumn, toRow, toColumn), в ячейку со вторыми координатами. Затем вызывает generateFormula последней. Затем вызывает setExpression(toRow, toColumn, expression).
@Alex13658
Copy link
Contributor

Добавлено

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants