【问题标题】:Best way to connect a spreadsheet to web database [closed]将电子表格连接到 Web 数据库的最佳方法 [关闭]
【发布时间】:2010-11-21 01:01:29
【问题描述】:

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

但是关于 Google App Script 的一些事情让我停下了脚步。它在服务器端运行,因此很难在本地调试。它没有任何带有断点或步进的调试器。它不能导入外部模块或库。没有 JSLint。没有这些,我开始有“呃,哦,这会很痛”的感觉。

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

编辑: 这些是最适合我的应用程序的潜在解决方案:

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

【问题讨论】:

  • 您具体需要哪些电子表格功能?如今,电子表格做了很多事情!
  • @RedFilter。主要是基本公式、单元格引用、依赖项、基本单元格格式。其他一切都将是一个奖励 - 多张纸,花哨的单元格格式。图表可能不是必需的。最重要的是能够对我的数据库进行 XHR 类型的请求。
  • 您是否使用 Google 电子表格本身作为浏览器视图打折。使用返回 csv 的单个公式 ImportData(URL) 将数据放入工作表中?

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


【解决方案1】:

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

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

也许我现在需要你的意见,看看我的答案是否离轨道不太远。

【讨论】:

  • 这绝对是在正确的轨道上。如果没有其他人出现,您只需搜索“计算引擎”和“电子表格引擎”即可。这些出现了很多有前途的想法。我会用更多细节更新这个问题。
【解决方案2】:

所以我自己也对此进行了深入研究,但确实有点痛。详情如下:

坏处:

  1. 您必须使用他们的编辑器,而不是 JSLint。
  2. 没有调试器。脚本在服务器端运行,因此 Firebug 和其他浏览器工具是零帮助。 “查看->执行记录”和“查看->日志”有点帮助。但它们似乎在“onEdit”事件中不起作用。
  3. 与 Web 的连接通过他们的 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. Google 数据 API 支持?我没有用过这个,但它看起来像是连接到外部网络资源的方法。
  5. 其他查看电子表格的人可以立即看到我的电子表格上集成良好的脚本更新。

总体而言,这个环境有很多潜力,有很多 UI 功能,但它似乎仍然缺少一些用于进行实际生产开发的关键功能。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多