[英]Excel office-js API - Insert values to a blank sheet
如何將值插入空白表?
我目前所知道的插入值的方法是檢索范圍,然后使用values
屬性插入values
,例如
range.getRange("A1:" + cellBottomRight);
range.load("values");
context.sync().then(function () {
range.values = twoDimensionalArrayOfValues;
});
通過使用單個函數簡單地插入值,而不是首先檢索范圍,是否有更簡單的方法?
謝謝!
編輯 :
我一直在嘗試創建一個新工作表,然后向其插入一個二維數組,該數組的值將從單元格A1開始插入。
到目前為止,我設法做到了以下幾點:
let neeSheet = context.workbook.worksheets.add("New sheet");
newSheet.activate();
newSheet.getRange("A1").values = twoDimensionalArray;
context.sync();
但是沒有用。
我如何使它工作?
謝謝!
如果您只想設置值,則實際上不必加載范圍,因此可以執行以下操作:
var range = ctx.workbook.worksheets.getItem("Sheet1").getRange("A1");
range.values = [["Value"]];
return ctx.sync();
(響應於@ avi12在“編輯”下的上述問題中添加的新信息,添加此答案)
上面的Philip的答案正確顯示了如何將單個值插入工作表的單元格A1中。 為了解決您在(更新的)問題中描述的特定情況,以下是一些代碼片段(一個在TypeScript中,另一個在JavaScript中),展示了如何創建新工作表,然后使用二維數據數組。 這里要指出的關鍵是,我正在通過使用getResizedRange (傳入數組的維)來檢索范圍,以便范圍的大小與我要插入其中的數據集的大小匹配。
注意:您可以使用Script Lab( https://aka.ms/getscriptlab )自己快速,輕松地嘗試這些片段。 只需安裝腳本實驗室加載項(免費),然后在導航菜單中選擇“導入”,並使用以下GIST URL: https : //gist.github.com/kbrandl/01c4faf352c34286188311c1198f6307 。
打字稿:
async function run_TS() {
try {
await Excel.run(async (context) => {
// define values that will be inserted into new sheet
let values = [["A1", "B1", "C1"], ["A2", "B2", "C2"]];
// create and activate new sheet
let sheets = context.workbook.worksheets;
let newSheet = sheets.add("New sheet TS");
newSheet.activate();
// add data to the new sheet
let range = newSheet.getRange("A1").getResizedRange(values.length - 1, values[0].length - 1);
range.values = values;
// sync
await context.sync();
console.log("Finished with run_TS function");
});
}
catch (error) {
OfficeHelpers.UI.notify(error);
OfficeHelpers.Utilities.log(error);
}
}
JavaScript:
function run_JS() {
Excel.run(function (context) {
// define values that will be inserted into new sheet
var values = [["A1", "B1", "C1"], ["A2", "B2", "C2"]];
// create and activate new sheet
var sheets = context.workbook.worksheets;
var newSheet = sheets.add("New sheet JS");
newSheet.activate();
// add data to the new sheet
var range = newSheet.getRange("A1").getResizedRange(values.length - 1, values[0].length - 1);
range.values = values;
// sync
return context.sync()
.then(function () {
console.log("Finished with run_JS function");
});
})
.catch(function (error) {
OfficeHelpers.UI.notify(error);
OfficeHelpers.Utilities.log(error);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.