Лучший способ подключить электронную таблицу к веб-базе данных - PullRequest
5 голосов
/ 21 ноября 2010

Я использую веб-базу данных, для которой мне нужно добавить возможности электронных таблиц в ее интерфейс.Я думал, что смогу использовать таблицы Google Docs.Их Google App Script, кажется, обладает той функциональностью, которая мне нужна.В частности, я могу использовать сервис URLFetch в сочетании с событиями onEdit для синхронизации электронной таблицы и БД в стиле AJAX.Это также дает мне большую гибкость в создании, сохранении и совместном использовании электронных таблиц

Однако некоторые вещи в Google App Script заставили меня задуматься.Он работает на стороне сервера, поэтому его трудно отладить локально.У него нет отладчика с точками останова или степпинга.Он не может импортировать внешние модули или библиотеки.Нет JSLint.Без них у меня появилось чувство «О, ох, это будет больно».

Так что мне интересно, есть ли лучший способ использовать функциональность электронных таблиц, доступных через браузер, в существующей веб-базе данных?Или есть лучшие методы для получения максимальной отдачи от Google App Script?

РЕДАКТИРОВАТЬ: Это потенциальные решения в порядке, который будет лучшим для моего приложения:

  1. на основе браузераДвижок электронных таблиц JavaScript.(Может не существовать.)
  2. Модуль движка электронных таблиц Python, который я могу установить в Google App Engine.(Я тоже этого не видел.)
  3. Более надежный и AJAXian подход к таблицам Google.(См. Оригинальный вопрос.)
  4. движки электронных таблиц с открытым исходным кодом, которые я могу установить на EC2.(Кажется, они существуют - возможно, SocialCalc или Простая таблица . Рекомендации?)

Ответы [ 3 ]

2 голосов
/ 15 декабря 2010

Мы используем функциональные возможности электронных таблиц на веб-странице, но вместо сценариев всех функций электронной таблицы мы используем механизм вычисления , который дает нам программную основу функциональных возможностей электронных таблиц.Механизм вычислений знает, как вычислять сотни типов формул, обрабатывать зависимости (и порядок между зависимостями), форматировать ячейки и т. Д. В моем конкретном случае мы используем SpreadsheetGear - http://www.spreadsheetgear.com/products/spreadsheetgear.net.aspx

Мы создаем представление HTMLэлектронной таблицы с навигацией по ячейкам и различными другими функциями с использованием некоторого JavaScript.Когда нам нужно пересчитать лист (например, F9 в Excel), мы отправляем всю таблицу на сервер, просим ее вычислить все, а затем пополняем представление веб-страницы результатами.Это может также записать в базу данных в зависимости от того, что находится в электронной таблице.

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

1 голос
/ 02 апреля 2013

Веб-база данных с возможностью работы с электронными таблицами? Звучит как Ragic .

И вы сказали, что вам нужно разработать свой собственный бэкэнд, я думаю, что вы можете использовать его HTTP API для публикации данных в Ragic и предложить пользователю использовать внешний интерфейс электронной таблицы, пока вы используете API для синхронизации ваших данных.

0 голосов
/ 02 декабря 2010

Так что я сам копался в этом, и это немного ранило.Вот подробности:

Плохо:

  1. Вы должны использовать их редактор, без JSLint.
  2. Нет отладчика.Скрипты работают на стороне сервера, поэтому Firebug и другие инструменты браузера не помогают.«View-> Execution transcript» и «View-> Logs» немного помогают.Но они, похоже, не работают в событиях "onEdit".
  3. Соединение с сетью происходит через службу UrlFetch, которая не имеет асинхронного режима.И он вообще не работает в событиях "onEdit": http://code.google.com/p/google-apps-script-issues/issues/detail?id=185
  4. В основном они имеют три типа событий."onLoad", "onInstall" и "onEdit".В частности, я сильно пропустил событие onClick.
  5. Нет поддержки внешних библиотек.

Хорошо:

  1. Это настоящий JavaScript, так чтофункции предсказуемо, и я могу использовать внешний инструмент JSLint.
  2. Мелкая кривая обучения.Понимание листов, диапазонов и значений для установки / получения являются ключевыми понятиями.
  3. Много функций для управления элементами электронной таблицы, форматирования и т. Д.
  4. Поддержка API данных Google?Я не использовал это, но это похоже на способ подключения к внешним веб-ресурсам.
  5. Хорошо интегрированные, скриптовые обновления в моей электронной таблице сразу видны другим, просматривающим электронную таблицу.

В целом эта среда обладает огромным потенциалом, с большим количеством возможностей пользовательского интерфейса, но, похоже, ей все еще не хватает некоторых ключевых функций для разработки реального производства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...