如何通過 Office.js 獲取給定 Excel 單元格(即單元格范圍)的系結?即某些東西已經通過
Office.context.document.bindings.addFromPromptAsync(
Office.BindingType.Text,
{ id: "myID", promptText: ",,," }, ...
當我有相應的范圍時,我想獲得 ID“myID”(或一般情況下的所有相關 ID)。
在保存的Excel資料中,這種關系通過例如
<x15:webExtension appRef="{AF230FEC-BC8D-45C8-9022-AC416ADF52AF}"><xm:f>Sheet1!$A$1</xm:f></x15:webExtension>
和
<we:binding id="myID" type="text" appref="{AF230FEC-BC8D-45C8-9022-AC416ADF52AF}"/>
uj5u.com熱心網友回復:
對于我的用例,我現在使用binding.addHandlerAsync添加一個在單元格被選中時運行的處理程式,這是我所需要的,請參閱如何使用 Office.JS 向 Excel 中的單元格添加不可見資訊?. 但是對于更一般的用例,問題仍然存在,但我認為當前的 API 是不可能的。
uj5u.com熱心網友回復:
讓我再次確認您的所有問題現在都已解決了嗎?
從您發布的所有三個執行緒中:thread1、thread2、thread3。我看到您有三個步驟可以從范圍中獲得隱形價值,現在它們都可以作業:
- 使用范圍地址獲取相關系結物件。(使用
binding.addHandlerAsync) - 獲取保存在系結物件中的 UUID 值。
- 使用 UUID 從設定中獲取真正的價值。
你提到:
但是對于更一般的用例,問題仍然存在,但我認為當前的 API 是不可能的。
根據我的知識,我會說是的。但是如果你只有幾個系結,你可以嘗試迭代所有系結來找到你提供的范圍相同的系結(有點低性能)。
async function findBinding() {
await Excel.run(async (context) => {
const bindings = context.workbook.bindings;
const sheet = context.workbook.worksheets.getActiveWorksheet();
const myRange = "Sheet1!A1:A2";
const cnt = bindings.getCount();
await context.sync()
for(let i = 0; i<cnt.value; i ){
var r = bindings.getItemAt(i).getRange();
r.load("address");
await context.sync();
if(r.address==myRange){
var item = sheet.customProperties.getItemOrNullObject(r.address);
item.load();
await context.sync();
console.log(item.value);
}
}
});
}
如果您需要這個新功能:直接通過范圍地址獲取系結。請在此頁面下提交請求,然后我們的pm將對其進行跟蹤并分配優先級。
謝謝你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/353938.html
下一篇:角度兩個驗證同時觸發
