如何在 excel 中唯一标识工作簿

How to uniquely identify a work book in excel

我们有一个 excel 插件,具有基于用户角色的功能。我们有一个想法,即创建一个示例工作簿,其中包含用于演示目的的所有功能访问权限。 excel 中的工作簿是否有任何唯一标识符?如果存在,我们如何使用 officejs 访问它们。我们对 officejs 文档进行了研究,发现工作簿中的工作表具有唯一标识符。缺点是删除工作表创建新工作表时会重复使用这些id。

Reference link of worksheet documentation .

是的,您可以使用 office.document.url 属性 来识别工作簿 URL。

此外,您还可以在工作表级别set/get自定义属性:

Excel.run(function (context) {
    // Add the custom property.
    var customWorksheetProperties = context.workbook.worksheets.getActiveWorksheet().customProperties;
    customWorksheetProperties.add("WorksheetGroup", "Alpha");

    return context.sync();
}).catch(errorHandlerFunction);

[...]

Excel.run(function (context) {
    // Load the keys and values of all custom properties in the current worksheet.
    var worksheet = context.workbook.worksheets.getActiveWorksheet();
    worksheet.load("name");

    var customWorksheetProperties = worksheet.customProperties;
    var customWorksheetProperty = customWorksheetProperties.getItem("WorksheetGroup");
    customWorksheetProperty.load(["key", "value"]);

    return context.sync().then(function() {
        // Log the WorksheetGroup custom property to the console.
        console.log(worksheet.name + ": " + customWorksheetProperty.key); // "WorksheetGroup"
        console.log("  Custom value : " + customWorksheetProperty.value); // "Alpha"
    });
}).catch(errorHandlerFunction);

https://docs.microsoft.com/en-us/office/dev/add-ins/excel/excel-add-ins-workbooks#worksheet-level-custom-properties.

https://docs.microsoft.com/en-us/javascript/api/office/office.document?view=excel-js-1.12

请尝试使用以下 Officejs API 将 UDID 与工作簿一起保存。这将保留在工作簿中。

Office.context.document.settings.set("Worksheet_ID", 'your_unique_identifier''); Office.context.document.settings.saveAsync();

参考 link - https://docs.microsoft.com/en-us/javascript/api/office/office.settings?view=word-js-preview#saveasync-options--callback-