将电子表格连接到Web数据库的最佳方法

时间:2010-11-21 01:01:30

标签: spreadsheet google-apps google-sheets google-apps-script

我正在使用基于网络的数据库,我需要在其前端添加电子表格功能。我以为我可以使用Google Docs Spreadsheets。他们的Google App Script似乎具有我需要的功能。特别是我可以使用URLFetch服务结合onEdit事件来保持电子表格和数据库同步--AJAX风格。它还使我在构建,保存和共享电子表格方面具有很大的灵活性

然而,关于Google App Script的一些事情让我停下来。它在服务器端运行,因此很难在本地进行调试。它没有任何带断点或步进的调试器。它无法导入外部模块或库。没有JSLint。没有这些,我开始得到那个“呃,哦,这会伤害”的感觉。

所以我想知道是否有更好的方法将浏览器可访问的电子表格功能固定到现有的基于Web的数据库?或者是否有最佳实践可以充分利用Google App Script?

编辑: 这些是对我的应用程序最有利的潜在解决方案:

  1. 基于浏览器的JavaScript电子表格引擎。 (可能不存在。)
  2. 我可以在Google App Engine上安装的Python电子表格引擎模块。 (我也没见过。)
  3. Google Spreadsheets采用更强大的AJAX方法。 (见原始问题。)
  4. 我可以在EC2上安装的开源电子表格引擎。 (这些似乎存在 - 可能是SocialCalc,或Simple Spreadsheet。建议?)

3 个答案:

答案 0 :(得分:2)

我们在网页上使用电子表格功能,但我们使用计算引擎而不是编写电子表格的所有功能,这为我们提供了电子表格功能的编程核心。计算引擎知道如何计算数百种类型的公式,处理依赖项(以及依赖项之间的顺序),单元格格式等。 在我的特定情况下,我们使用SpreadsheetGear - http://www.spreadsheetgear.com/products/spreadsheetgear.net.aspx

我们使用一些javascript创建带有单元格导航和各种其他功能的电子表格的HTML表示。当我们需要重新计算工作表时(例如Excel中的F9),我们将整个电子表格发送到服务器,要求它计算所有内容,然后用结果重新填充网页表示。这也可能会根据电子表格中的内容写入数据库。

也许我现在需要你的输入,看看我的回答是否偏离轨道太远了。

答案 1 :(得分:1)

具有电子表格前端功能的基于Web的数据库?听起来像Ragic

你说你需要开发自己的后端,我认为你可以使用他们的HTTP API将数据发布到Ragic,并让用户在使用API​​同步你的数据时使用电子表格前端。

答案 2 :(得分:0)

所以我自己也深入研究了它,并且确实有点伤害。以下是详细信息:

坏事:

  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. 没有外部图书馆支持。
  6. 好处:

    1. 这是真正的JavaScript,所以它可以预测,我可以使用外部JSLint工具。
    2. 浅学习曲线。理解工作表,范围和设置/获取值是关键概念。
    3. 用于处理电子表格项目,格式化等的许多功能
    4. Google Data API支持?我没有使用它,但它看起来像是连接外部Web资源的方式。
    5. 观看电子表格的其他人可以立即看到我的电子表格中集成良好的脚本更新。
    6. 总体而言,这种环境具有很大的潜力,具有大量的UI功能,但它似乎仍然缺少实际生产开发的一些关键功能。