如何从办公室.js中的给定Excel命名范围获取地址



我对使用 Javascript API 的 Office 加载项很陌生,目前我正在为 Excel 2013 编码。我想获取给定Excel命名区域的单元格地址。我有以下代码,它将为我提供列和行计数,但没有获取起始列号或行号的选项。请帮忙

function GetRangeAddress() {
        Office.context.document.bindings.addFromNamedItemAsync("myRange", "matrix", { id: 'myMatrix' }, function (result) {
            if (result.status == 'succeeded') {
                write('Columns: ' + result.value.columnCount + '  Rows: ' + result.value.rowCount );
            }
            else
                write('Error: ' + result.error.message);
        });
    }

Office.context.document.bindings.addFromNamedItemAsync 的返回对象是 Binding 对象。没有方法的属性,我们可以从绑定对象中获取地址。

但是,支持Excel 2016的新版本API,我们可以直接获取名称范围的地址。下面是一个示例供您参考:

function getAddress() {
    Excel.run(function (ctx) {
        var names = ctx.workbook.names;
        var namedItem = names.getItem('MyRange');
        var range = namedItem.getRange();
        range.load('address')
        return ctx.sync().then(function () {
            console.log(range.address);
        });
    }).catch(function (error) {
        console.log("Error: " + error);
        if (error instanceof OfficeExtension.Error) {
            console.log("Debug info: " + JSON.stringify(error.debugInfo));
        }
    });
}

您可以从下面的链接获取有关新 API 的更多详细信息:

https://msdn.microsoft.com/en-us/library/office/mt616490.aspx

如果您对 Office 外接程序有任何反馈,可以尝试从以下链接提交反馈:

https://officespdev.uservoice.com/

最新更新