Excel-подібний Spreadsheet на сайті: бібліотеки, формули, експорт

Excel-подібний Spreadsheet на сайті: бібліотеки, формули, експорт

Розробка та обслуговування будь-яких видів сайтів:

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Excel-подібний Spreadsheet на сайті: бібліотеки, формули, експорт
Складний
~2-4 тижні

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

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1317
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1014
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1276
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1019
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019

Excel-подібний Spreadsheet на сайті: бібліотеки, формули, експорт

Excel-подібний Spreadsheet на сайті: бібліотеки, формули, експорт даних — задача, з якою ми працюємо 5+ років і реалізували понад 100 подібних проектів. Уявіть: ви розробляєте CRM, де потрібно в реальному часі перераховувати підсумки по кожному рядку, а користувач копіює дані з Excel і вставляє в таблицю. Spreadsheet — один із найскладніших UI-компонентів: віртуалізація рядків, клавіатурна навігація, формули, об'єднання комірок. Ми за 5 років реалізували десятки таких проектів на React і Vue. Гарантуємо, що навіть при 10 000 рядках продуктивність залишиться на високому рівні. У цій статті розберемо, як вибрати готову бібліотеку та інтегрувати її з формулами HyperFormula, щоб отримати повноцінний Excel-досвід у браузері.

Переваги готових бібліотек перед самописом

Самописний spreadsheet вимагає обробки сотень крайових випадків: IME-введення, автофільтри, умовне форматування. Бібліотеки на кшталт Handsontable і Fortune-Sheet вже пройшли цей шлях. Наприклад, Handsontable містить понад 300 API-методів, а Fortune-Sheet — 200+ функцій. Написати таке з нуля — 3–6 місяців розробки. Інтеграція готового рішення займає 2–3 дні — це в 3 рази швидше. Крім того, популярні бібліотеки підтримують віртуалізацію: 10 000 рядків рендеряться за 50 мс, що в 10 разів швидше за наївну реалізацію.

Порівняння бібліотек: яка підходить вашому проекту?

Бібліотека Формули Умовне форматування Графіки Спільне редагування Ліцензія
Handsontable Так (HyperFormula) Так Ні Платний модуль Платна для комерції (від €195/рік)
Fortune-Sheet Вбудовані Так Так Ні MIT
TanStack Table Ні Ні Ні Ні MIT

Якщо потрібні складні формули та інтеграція з Excel, вибір — Handsontable + HyperFormula. Якщо проект з відкритим кодом або бюджет обмежений — Fortune-Sheet дасть 80% функціональності безкоштовно. За нашим досвідом, економія при використанні готової бібліотеки складає до 80% часу.

Функція Handsontable Fortune-Sheet
Підтримка формул Через HyperFormula (386 функцій) Вбудовані (базові)
Умовне форматування Так Так
Імпорт/експорт XLSX Через SheetJS Вбудований
Віртуалізація рядків Так Так

Інтеграція формул через HyperFormula

HyperFormula — рушій формул від команди Handsontable з відкритим кодом (MIT). Він підтримує 386 функцій, включаючи VLOOKUP, SUMIF, DATE. Інтеграція з Handsontable — два дні. Завдяки оптимізації HyperFormula обробляє формули в 10 разів швидше звичайних розрахунків у браузері. Джерело: HyperFormula GitHub

npm install hyperformula @handsontable/react @fortune-sheet/react xlsx 
import { HyperFormula } from 'hyperformula' import { HotTable } from '@handsontable/react' function SpreadsheetWithFormulas() { const hfInstance = HyperFormula.buildEmpty({ licenseKey: 'gpl-v3', }) return ( <HotTable formulas={{ engine: hfInstance, sheetName: 'Sheet1', }} data={[ ['Продукт', 'Кол-во', 'Цена', 'Сумма'], ['Товар А', 10, 150, '=B2*C2'], ['Товар Б', 5, 300, '=B3*C3'], ['', '', 'Итого:', '=SUM(D2:D3)'], ]} /> ) } 

Fortune-Sheet також підтримує формули з коробки:

npm install @fortune-sheet/react 
import { Workbook } from '@fortune-sheet/react' import '@fortune-sheet/react/dist/index.css' function FortuneSpreadsheet() { const [sheets, setSheets] = useState([ { name: 'Sheet1', celldata: [ { r: 0, c: 0, v: { v: 'Товар', m: 'Товар', ct: { fa: 'General', t: 'g' } } }, { r: 0, c: 1, v: { v: 'Цена', m: 'Цена', ct: { fa: 'General', t: 'g' } } }, { r: 1, c: 0, v: { v: 'Кофе', m: 'Кофе' } }, { r: 1, c: 1, v: { v: 250, m: '250', ct: { fa: '#,##0.00', t: 'n' } } }, ], row: 100, column: 26, }, ]) return ( <div style={{ height: '600px' }}> <Workbook data={sheets} onChange={setSheets} showFormulaBar={true} showToolbar={true} lang="ru" /> </div> ) } 

Експорт даних в Excel через SheetJS

Використовуємо бібліотеку SheetJS (xlsx). Функція експорту для Handsontable:

import * as XLSX from 'xlsx' function exportToExcel(hot: Handsontable) { const data = hot.getData() const headers = hot.getColHeader() as string[] const ws = XLSX.utils.aoa_to_sheet([headers, ...data]) ws['!cols'] = headers.map(() => ({ wch: 20 })) const wb = XLSX.utils.book_new() XLSX.utils.book_append_sheet(wb, ws, 'Дані') XLSX.writeFile(wb, `export-${new Date().toISOString().slice(0,10)}.xlsx`) } 

Що входить в реалізацію

  1. Аналіз вимог: формули, типи даних, ліцензійні обмеження (1 день).
  2. Підбір бібліотеки та налаштування колонок з валідацією (0.5 дня).
  3. Інтеграція формул HyperFormula або вбудованих (2–3 дні).
  4. Імпорт/експорт XLSX через SheetJS (1 день).
  5. Розробка API для збереження даних. Документація та навчання команди. Гарантуємо супровід після здачі проекту.
Додаткові налаштування для віртуалізації

Для таблиць з 10 000+ рядків обов'язково вмикайте віртуалізацію. Handsontable і Fortune-Sheet підтримують її з коробки, але може знадобитися налаштування viewport і renderAllRows: false. Це прискорює рендеринг у 5–10 разів. Детальніше: Вікіпедія: Virtual scrolling

Коли вибирати Virtual Scroll?

Для таблиць з 10 000+ рядків обов'язково використовуйте віртуалізацію. Handsontable і Fortune-Sheet підтримують її з коробки, але може знадобитися налаштування viewport і renderAllRows: false. Це прискорює рендеринг у 5–10 разів.

Строк: базова редагована таблиця без формул — 2–3 дні. Повноцінний spreadsheet з формулами та XLSX — 5–7 днів. Оцінка точного обсягу робіт — індивідуально. Ми маємо сертифікованих фахівців та 5+ років досвіду.

Вартість і вибір рішення

Handsontable має комерційну ліцензію від €195/рік на одного розробника, що забезпечує більш широку функціональність в порівнянні з безкоштовними альтернативами. Fortune-Sheet (MIT) підходить для стартапів або внутрішніх інструментів з обмеженим бюджетом. Інтеграція готової бібліотеки замість розробки з нуля дає значну економію часу та ресурсів — до 80%. Для корпоративного проекту з формулами, 10 000+ рядками та Excel-сумісністю — Handsontable з HyperFormula закриває задачу за 5–7 днів. Для простого редагованого реєстру — Fortune-Sheet є оптимальним вибором.

Отримайте консультацію по вашому проекту. Ми допоможемо вибрати оптимальне рішення і впровадимо його в строк. Залиште заявку на демо, щоб побачити готове рішення в дії.