Онлайн-редактор таблиц: виртуализация, формулы и совместная работа

Создать онлайн-редактор таблиц, который справляется с десятками тысяч строк и сложными формулами, — нетривиальная инженерная задача. Готовые коробочные решения не дают гибкости: встроить их в CRM, добавить свои функции или адаптировать под специфику бизнеса почти невозможно. Мы строим систему с нуля

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Онлайн-редактор таблиц: виртуализация, формулы и совместная работа
Сложный
от 2 недель до 3 месяцев

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Создать онлайн-редактор таблиц, который справляется с десятками тысяч строк и сложными формулами, — нетривиальная инженерная задача. Готовые коробочные решения не дают гибкости: встроить их в CRM, добавить свои функции или адаптировать под специфику бизнеса почти невозможно. Мы строим систему с нуля под ваш сценарий — с виртуализацией, формульным движком и совместной работой. Экономия на лицензиях по сравнению с AG Grid Enterprise может достигать 40%, а средний период окупаемости — 6–9 месяцев. Оценим проект за 1 день.

Как работает виртуализация больших таблиц?

Таблица со 100 000 строк не может рендерить все DOM-элементы — браузер зависнет. Решение — виртуализация: рендер только видимых строк с буфером. Используем headless-библиотеку TanStack Virtual для полного контроля рендеринга или AG Grid с готовой виртуализацией и встроенными формулами. В проектах с высокой нагрузкой комбинируем AG Grid с собственным формульным движком — это даёт стабильные 60 FPS даже на мобильных устройствах.

Пример реализации виртуализации строк с TanStack Virtual:

const rowVirtualizer = useVirtualizer({ count: rows.length, getScrollElement: () => parentRef.current, estimateSize: () => 24, overscan: 10, }); 

Для сравнения возможностей популярных библиотек:

Библиотека Виртуализация Формулы Совместная работа Лицензия
TanStack Virtual Да (headless) Нет Нет MIT
AG Grid Да Встроен. Enterprise Коммерческая
Handsontable Да HyperFormula Через внешние инструменты MIT / Commercial

Формульный движок: от парсинга до пересчёта

Формулы вида =SUM(A1:B10) * C5 + IF(D1>0, E1, 0) требуют парсера и графа зависимостей. Мы используем HyperFormula — open-source движок на TypeScript с поддержкой 400+ формул, совместимых с Excel. Он работает и в браузере, и на сервере, что позволяет вычислять тяжёлые формулы асинхронно. Dependency tracking в HyperFormula lazy: при изменении одной ячейки пересчитывается только минимальный набор зависимых.

Почему CRDT лучше OT для совместного редактирования?

Operational Transformation (OT) требует центрального сервера и последовательной обработки — это создаёт задержки и сложности при offline. CRDT (Conflict-free Replicated Data Types) позволяют каждому клиенту работать автономно, а потом сливать изменения без конфликтов. В таблицах используем Yjs с shared types: Y.Map для ячеек. Подробнее о CRDT можно прочитать в Wikipedia.

const ydoc = new Y.Doc(); const cells = ydoc.getMap('cells'); const provider = new WebsocketProvider('ws://server', 'spreadsheet-123', ydoc); 

При одновременном изменении одной ячейки двумя пользователями применяется Last Write Wins (LWW) на основе логических часов — данные не теряются.

Как добавить кастомную формулу в редактор?

  1. Создайте функцию-реализацию на TypeScript, например: const CUSTOM_FN = (a: number, b: number) => a * b;
  2. Зарегистрируйте её в HyperFormula через HyperFormula.registerFunctionPlugin(MyPlugin);
  3. В интерфейсе добавьте кнопку для вставки формулы, которая вызывает hf.setCellFormula(row, col, '=CUSTOM_FN(A1, B2)');
  4. При пересчёте движок автоматически вызовет вашу функцию. Весь процесс занимает около 2 часов.

История изменений и undo/redo

Undo/redo реализуем через стек операций. Каждое изменение (вставка текста, изменение формулы, форматирование) записывается как reversible-команда. Для совместного редактирования важно отличать свои действия от чужих — мы храним userId в метаданных. При 50+ одновременных пользователях время отклика остаётся ниже 50 мс.

Импорт / Экспорт XLSX: что внутри

  • SheetJS (xlsx) — читает и пишет XLSX, XLS, CSV. Под капотом парсит XML-архив, извлекает ячейки, форматирование, формулы (записывает их как строки).
  • ExcelJS — создаёт XLSX с расширенным форматированием: объединение ячеек, условное форматирование, изображения.

При импорте формулы из XLSX сохраняются в текстовом виде и передаются в HyperFormula для вычисления при первом показе.

Процесс работы: этапы и сроки

Этап Длительность Результат
Аналитика и прототип 2–4 недели ТЗ, макет, выбор стека
Проектирование архитектуры 1–2 недели ERD, API-спецификация, карта компонентов
Разработка ядра (виртуализация, формулы) 4–8 недель Работающий табличный движок
Интерфейс и интеграция 4–8 недель UI, импорт/экспорт, коллаборация
Тестирование и деплой 2–4 недели Регресс, нагрузочное тестирование, CI/CD

Что входит в работу

Мы предоставляем:

  • Исходный код редактора на TypeScript (React/Angular/Vue по выбору)
  • Документация API для интеграции
  • Инструкция по деплою (Docker, Nginx)
  • Обучение команды (до 5 часов)
  • Поддержка на этапе внедрения (2 недели)

Средний срок создания специализированной таблицы с базовым функционалом — 2–3 месяца. Полноценный редактор с совместной работой, импортом XLSX и 200+ формулами — 6–10 месяцев. Точную оценку дадим после анализа вашего кейса.

Типичные ошибки при разработке онлайн-редактора таблиц

  • Недооценка виртуализации: попытка рендерить все строки приводит к падению производительности.
  • Использование OT без резервирования: при отключении клиента теряются правки — CRDT решает эту проблему.
  • Игнорирование форматного слоя: при импорте XLSX теряется форматирование, что снижает удобство.

Свяжитесь с нами для консультации и получите оценку проекта за 1 день. Закажите разработку онлайн-редактора таблиц под ваши задачи — мы поможем реализовать решение с нуля.