【问题标题】:Find the dirty(edited) cell/cells from excel sheet using Excel JavaScript API使用 Excel JavaScript API 从 excel 工作表中查找脏(已编辑)单元格
【发布时间】:2018-06-12 12:51:37
【问题描述】:

我正在使用 Office 365 和 Excel 在线版(内部版本 16.0.9403.1875)。

我正在使用 Excel javascript API 创建 Microsoft Excel 在线加载项。

如何使用 Excel Javascript API 从 excel 表中查找脏单元格。

如果一个单元格是按值/公式/格式编辑的,那就变脏了。所以我需要找到,从单元格范围内所有的单元格是脏(编辑)的。

供参考,请查找

计算

这个link中的方法。

提前谢谢。

【问题讨论】:

  • 到底什么是“脏细胞”?我什至不敢在工作时用谷歌搜索。
  • 如果一个单元格是按值或格式编辑的,那就变脏了。所以我需要找到,从单元格范围内所有的单元格是脏(编辑)的。
  • 工作时更安全的 google:“IsDirty”,因为这是大多数编码标准中的正确语法。

标签: excel office365 office-js


【解决方案1】:

没有可以返回脏单元格的 Excel JavaScript API,但这是个好主意。请通过Office Developer Voice提出建议。

【讨论】:

  • 谢谢,我也会这样做的。
【解决方案2】:

由于 Excel 本身没有脏标志,您需要通过以下两种方法之一生成一个:

捕获单元格编辑事件并记录已编辑的脏单元格列表。

Dim Dirty As New Collection

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim sheet As Worksheet
    Set sheet = Sh
    Dirty.Add (sheet.Name + "!" + Target.Address)
End Sub

当你需要dirty flag时,打开后台保存的副本,比较两者看看有什么变化。

【讨论】:

  • 感谢您的回复,我只能选择仅使用 JavaScript。第二个选项是可能的,但必须检查每个单元格的所有(值/公式/任何格式)才能决定。
  • 抱歉,错过了 Javascript API 说明。你能在那里捕捉到工作表/工作簿事件吗?
  • 从您在问题中提供的链接看来,您确实可以访问 onChanged 事件。
  • dev.office.com/reference/add-ins/excel/… Java 中的语法会有所不同,但提供的算法应该可以工作。您可能会使用地址和工作表 id 而不是串联的字符串地址来存储更复杂的对象。
  • 感谢您的回复。 - 这个事件对象以什么方式帮助我们找到脏单元格? - 事件对象属性非常少,这些属性在我的上下文中没有用。 - 正如你所提到的,我收集了复杂对象的单元格信息,我应该找到原始单元格(未触及的单元格),所以我将忽略它以减少我的对象(数据)大小。
猜你喜欢
  • 2015-01-12
  • 2016-11-21
  • 1970-01-01
  • 2014-08-28
  • 1970-01-01
  • 2017-05-17
  • 1970-01-01
  • 2015-03-20
  • 1970-01-01
相关资源
最近更新 更多