【问题标题】:Get cells 'valueBefore' on change in Office.js excel在 Office.js excel 中获取单元格“valueBefore”的变化
【发布时间】:2020-09-03 09:37:41
【问题描述】:

我正在使用 Office.js 开发 Excel Web 加载项。 我需要在单元格更改之前获取更改的单元格值。 对于一个更改的单元格,我可以获取 Excel.ChangedEventDetail 并从那里获取 valueBefore:

cellChange = async (event: Excel.TableChangedEventArgs): Promise<any> =>
{
    await Excel.run({delayForCellEdit: true}, async context =>
    {
        let details: Excel.ChangedEventDetail = event.details;
        let value = details.valueBefore;
    }
}

但这不适用于更改单元格的范围。如果我更改多个单元格的“详细信息”值是“未定义”。有没有办法在更改范围内的每个单元格之前获取单元格值?

【问题讨论】:

  • 能否请您分享一下您的场景,我想看看我们如何为您提供支持。谢谢

标签: excel typescript office-js office-addins exceljs


【解决方案1】:

抱歉,onChangedEvent 旨在返回单个值更改 detail。因为payload size limits,因为单元格内容可能很大,如果我们支持多个单元格,用户可能会复制和粘贴一个很大的范围,这很可能会达到有效负载大小限制。因此,我们限制在此事件中返回单个单元格详细信息。

因此,我建议您可以在uservoice 上提交您的请求,并支持您的请求。谢谢。

但是如果你能分享你的场景会很好,所以我看看我们是否可以帮助你解除这个场景?谢谢

【讨论】:

  • 感谢您的回答。在我的 excel 表中,我填充了来自不同来源的数据,并且某些单元格不应更改,我为此单元格设置了背景颜色,并且根据此颜色,我可以防止单元格更改。但如果用户更改单元格值的范围,我会考虑每个单元格并检查它的颜色,并根据它(假设颜色为灰色)我想恢复不应更改的值。
  • 如果您想避免用户更改特殊单元格,我认为您可以使用锁定单元格功能并保护工作表。因此最终用户无法更改受保护的单元格
  • 我无法锁定表格中的单元格,因为在这种情况下,受保护的表格无法按标题排序。这就是我不使用工作表保护的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-10
  • 1970-01-01
相关资源
最近更新 更多