Glue42 - 在 Excel 中注册更新



我想链接一个应用程序来验证在Excel中进行的更新。 我正在尝试使用 Glue42 互操作方法。 有人有代码示例吗?

我已经成功链接了两个应用程序,但没有 excel

我在 excel 中更改了一个单元格,我的外部应用程序验证是否可以更改。

我相信你错过了Glue for Office文档。您可以从主页转到两个部分:一个用于常规编程,另一个用于 Office 连接器。

无论如何,对于这个问题,您首先需要获取对带有代码的 Glue4Office 对象的引用,类似于下面的一个:

const config = {
    // ...,
    excel: true // enable Excel integration
}
Glue4Office(config)
    .then(g4o => {
       const excel = g4o.excel
       // interact with Excel
    })
    .catch(console.error)

然后,一旦打开工作表并获取对它的引用,就可以订阅其 onChanged 事件,您可以在其中调用 errorCallback 参数。下面是一个示例:

excel.openSheet(config)
    .then(sheet => {
            sheet.onChanged((data, errorCallback, doneCallback) => {
                // process changes here
                // errorCallback(...) - call if there are validation errors
                // doneCallback() - call if not doing validations or everything's OK
            })
    })
sheet.onChanged((data, errorCallback, doneCallback) => {
    // ...
    const errors = []
    data.reduce(
        (errors, rowData, rowIndex) => {
            if (!rowData['firstName']) {
                errors.push({
                    row: rowIndex + 1,
                    column: 'firstName',
                    description: 'First name is mandatory'
                })
            }
            if (Number(rowData['subscriptionMonths']) < 6) {
                errors.push({
                    row: rowIndex + 1,
                    column: 1, // <- note column index this time
                    description: 'Subscription period must be at least 6 months',
                    text: '6' // <- replacing what the user typed
                })
            }
        },
        [])
    // if during the validation pass we've accumulated any errors 
    // we need to call the errorCallback, otherwise the doneCallback
    if (errors.length > 0) {
        errorCallback(errors)
    }
    else {
        doneCallback()
    }
})

也有方便的声明性方法。

相关内容

  • 没有找到相关文章

最新更新