我是Excel加载项和Office.js的新手。我正在尝试探索代码加载项目。
这里我试图从命名范围读取值。首先,我尝试获取range
对象,然后为range
加载值。
我无法获取这些值,但此代码既不会抛出错误也不会将值打印到控制台:
Excel.run(function (ctx) {
var range = ctx.workbook.names.getItem("MyRange").getRange();
range.load("values");
return ctx.sync(function () {
console.log("required range values -> ");
console.log(range.values);
});
}).catch(function (e) {
console.log("error info is" + e.message);
});
我的表格中已经有MyRange
。
答案 0 :(得分:1)
在您发布的代码中,您在.then(...)
之后错过了return ctx.sync()
。
以下(JavaScript)代码段获取命名范围 ExpensesHeader ,然后将该范围的值写入控制台。
Excel.run(function (ctx) {
var sheet = ctx.workbook.worksheets.getItem("Sample");
var myNamedItem = sheet.names.getItem("ExpensesHeader");
var myNamedRange = myNamedItem.getRange();
myNamedRange.load("values");
return ctx.sync()
.then(function () {
console.log("values: " + JSON.stringify(myNamedRange.values));
});
});
这是相同的片段,但在TypeScript中:
Excel.run(async (ctx) => {
const sheet = ctx.workbook.worksheets.getItem("Sample");
const myNamedItem = sheet.names.getItem("ExpensesHeader");
const myNamedRange = myNamedItem.getRange();
myNamedRange.load("values");
await ctx.sync();
console.log("values: " + JSON.stringify(myNamedRange.values));
});
您可以使用脚本实验室(https://aka.ms/getscriptlab)快速轻松地在Excel中自行尝试这些代码段。只需安装Script Lab加载项(免费),然后在导航菜单中选择“导入”,并使用以下GIST URL:https://gist.github.com/kbrandl/da3f56d9510329d5ea04bf00ced5c870。