【问题标题】:Monitor Google Spreadsheet cell value and undo an unwanted change监控 Google 电子表格单元格值并撤消不需要的更改
【发布时间】:2012-07-02 02:09:01
【问题描述】:

这似乎是一个非常愚蠢的问题,但我希望不是。我是护士而不是程序员,所以有很多我(还)不明白。

Google 电子表格的右下角有一个区域,该区域似乎存储了选定单元格的原始值,直到用户点击 Enter 或点击离开该单元格。我假设它用于评估单元格是否已被用户编辑。

是否可以在编辑之前访问该数据以记录单元格的值?如果是……怎么办?

我不知道该区域的正确名称,但如果我右键单击它并选择“检查元素”,则会突出显示:

<div class="waffle-formula-container" style dir="ltr">L</div>

我选择的单元格包含字母“L”,所以我可以找出最后一点,但是什么是华夫饼容器?谷歌搜索该短语会返回很多关于保持华夫饼新鲜的建议,但没有太多其他用途。

我已为相关的问题2001200 加注星标,但现在已经几个月了,似乎没有新的进展,所以我试图跳出框框思考。

我什至不知道要应用哪些标签,所以我欢迎仅此方面的建议。

【问题讨论】:

  • 一个元素上的class 属性用于出于某种原因将其与相似或相似的元素分组(例如,样式化,或用于通过 Javascript 选择元素以便您可以处理它们)。 (id 指向一个 specific 元素,并且永远不应指示分组或在页面上重复使用。)所以waffle-formula-container 只是指它属于该组的事实,Google 所在的组用它做某事。您是否尝试将更改记录到电子表格中以便撤消这些更改?你能解释一下你最终想要做什么吗?
  • 我在查看了链接并阅读了您正在尝试做的事情后编辑了这个问题,这与 Javascript DOM 事件有关,而不是真正的 HTML。希望这会有所帮助。
  • 感谢您更改标签 Jared 和解释。是的,我正在尝试想出一种方法来撤消不需要的更改,例如,如果用户不小心在错误的行上输入了条目。这很容易通过单击撤消、使用 Ctrl Z 甚至从修订历史中重新加载以前的版本来亲自完成,但我想监视错误并以编程方式解决它们。

标签: javascript google-apps-script google-api dom-events


【解决方案1】:

从您对其他答案的 cmets 看来,您正在尝试模拟每行权限。鉴于当前的限制,最好寻找替代解决方案,例如使用接受和存储数据的 Google Apps 脚本构建 Web 应用程序。这将使您可以完全控制访问权限等。

【讨论】:

  • 嗨,Eric,per=row 权限正是我所需要的。感谢 webapp 的想法 - 我之前尝试过,但由于当时的知识和服务有限而失败。然而事情已经发生了变化,现在我们可以作为有效用户运行一个 webapp,我也许可以解决一些问题。感谢您的提示。
【解决方案2】:

嗯,除了主演第 200 期之外,您无能为力。 但是,有一个之前讨论过的解决方法

使用 onOpen 调用将电子表格的副本存储在数组中。因此,在每个 onEdit 上,您都可以访问旧值和新值。在您的 onEdit 中,将数组与电子表格中的数据同步回来。

【讨论】:

  • 谢谢斯里克。我阅读了有关该解决方法的信息,但不幸的是,它在我的用例中并不实用。
【解决方案3】:

我不知道你想如何访问这个“以前的状态”,但如果你需要“手动”查看它,这个功能已经内置在带有修订历史的电子表格应用程序中。这是一个非常强大的功能,虽然无法通过脚本访问:每个更改都会突出显示,您甚至可以看到是谁进行了更改:-)

【讨论】:

  • 谢谢谢尔盖。我想要的是当我的脚本检测到用户编辑了其他人的行时自动执行撤消调用的能力。我预计我正在开发的项目中会出现问题。修订历史是我当前解决方案的一部分,但我希望有一天不必依赖手动输入来纠正问题。
猜你喜欢
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多