在 table Excel JS 中使用 getCell() 设置单元格值
Set cell value with getCell() in table Excel JS
我被困在这个问题上,在任何网站上都找不到答案。我正在尝试设置单元格的值,但出现以下错误:
属性“值”未加载。请调用加载方法和 context.sync() ...
我知道我需要调用加载方法,但我尝试的加载中 none 有效。
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
var FilledTable = sheet.tables.getItem(randomId);
FilledTable.rows.load("items"); //Tried this and many others...
FilledTable.getDataBodyRange().load("values");
return context.sync().then(function () {
FilledTable.getRange().getCell(1,0).values = [[ "test" ]]; //Trying to do this!
});
}
感谢您的帮助!!
更新
我正在尝试循环 table 的第一列并使用已设置的值设置超链接。
示例:完整示例
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
var filledTable = sheet.tables.getItem(randomId);
var usedRange = filledTable.getRange().load("values, rowCount");
return context.sync().then(function () {
var keyPos = headers.indexOf("Key");
if(keyPos > -1){
for(var z = 1; z < usedRange.rowCount; z++){
usedRange.values[z][0].hyperlink = {
address: `url` + usedRange.values[z][0],
documentReference: null,
screenTip: null,
textToDisplay: usedRange.values[z][0],
};
}
}
});
})
我能够通过使用 getRow 和 getColumn 而不是值来解决我的问题!这是固定代码:
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
var filledTable = sheet.tables.getItem(randomId);
var usedRange = filledTable.getRange().load("values, rowCount");
return context.sync().then(function () {
var keyPos = headers.indexOf("Key");
if(keyPos > -1){
for(var z = 1; z < usedRange.rowCount; z++){
usedRange.getRow(z).getColumn(keyPos).hyperlink = {
address: `url` + usedRange.values[z][keyPos],
documentReference: null,
screenTip: null,
textToDisplay: usedRange.values[z][keyPos],
};
}
}
});
})
我被困在这个问题上,在任何网站上都找不到答案。我正在尝试设置单元格的值,但出现以下错误:
属性“值”未加载。请调用加载方法和 context.sync() ...
我知道我需要调用加载方法,但我尝试的加载中 none 有效。
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
var FilledTable = sheet.tables.getItem(randomId);
FilledTable.rows.load("items"); //Tried this and many others...
FilledTable.getDataBodyRange().load("values");
return context.sync().then(function () {
FilledTable.getRange().getCell(1,0).values = [[ "test" ]]; //Trying to do this!
});
}
感谢您的帮助!!
更新
我正在尝试循环 table 的第一列并使用已设置的值设置超链接。
示例:完整示例
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
var filledTable = sheet.tables.getItem(randomId);
var usedRange = filledTable.getRange().load("values, rowCount");
return context.sync().then(function () {
var keyPos = headers.indexOf("Key");
if(keyPos > -1){
for(var z = 1; z < usedRange.rowCount; z++){
usedRange.values[z][0].hyperlink = {
address: `url` + usedRange.values[z][0],
documentReference: null,
screenTip: null,
textToDisplay: usedRange.values[z][0],
};
}
}
});
})
我能够通过使用 getRow 和 getColumn 而不是值来解决我的问题!这是固定代码:
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
var filledTable = sheet.tables.getItem(randomId);
var usedRange = filledTable.getRange().load("values, rowCount");
return context.sync().then(function () {
var keyPos = headers.indexOf("Key");
if(keyPos > -1){
for(var z = 1; z < usedRange.rowCount; z++){
usedRange.getRow(z).getColumn(keyPos).hyperlink = {
address: `url` + usedRange.values[z][keyPos],
documentReference: null,
screenTip: null,
textToDisplay: usedRange.values[z][keyPos],
};
}
}
});
})