javascript - 如何获取office.js中的所有名称(而不是值)?

标签 javascript office-js scriptlab

我有几个“命名”范围。我试图获取范围的名称,而不是值。

我尝试过以下方法:

$("#get-values").click(getValues);

async function getValues() {
    try {
        await Excel.run(async (context) => {
            const sheet = context.workbook.worksheets.getItem("FormName");
            const valm = sheet.names;
            valm.load("names");
            await context.sync();
            console.log(JSON.stringify(valm.names));
        });
    } catch (error) {
        OfficeHelpers.UI.notify(error);
        OfficeHelpers.Utilities.log(error);
    }
}

我不知道如何从上面的脚本中获取名称

最佳答案

names 集合可在工作簿级别访问:

async function run() {
    await Excel.run(async (context) => {
        var names = context.workbook.names;
        names.load();
        await context.sync();
        console.log(JSON.stringify(names));
    });
}

这将产生一个 NamedItemCollection ,其中包含与此类似的 NotedItems:

{
    "comment": "",
    "name": "Range Name",
    "scope": "Workbook",
    "type": "Range",
    "value": "Sheet1!$A$1:$C$1",
    "visible": true
}

范围的地址保存在value 属性中。您可以使用它来确定找到给定范围的哪个工作表。

关于javascript - 如何获取office.js中的所有名称(而不是值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48987919/

相关文章:

office365-apps - 是否可以使用带有 office-js 的 office 365 javascript 应用程序拦截电子邮件发送的按钮单击事件

office-js - `context.document.body.insertOoxml` 破坏文档,使 Word 崩溃

javascript - VueJS中的亲子通信

javascript - 解析云代码 全部保存

javascript - 完整日历描述中的新行

javascript - 单击导航栏元素后如何防止重新加载单页应用程序?

javascript - 仅从功能区打开一个对话框

ms-office - 我们无法连接到此 add-n 的目录服务器

office-js - 将 Excel 表格的整列格式化为字符串

ms-office - 使用自定义函数提交加载项(更新?)