Excel office-js API – 将值插入空白工作表

我怎样才能将值插入到空白工作表?
我目前知道插入值的方式是通过检索范围,然后使用values属性插入values ,例如

 range.getRange("A1:" + cellBottomRight); range.load("values"); context.sync().then(function () { range.values = twoDimensionalArrayOfValues; }); 

有一个简单的方法,使用单个函数来插入值,而不是首先检索范围?

谢谢!

编辑
我一直在试图创build一个新的工作表,然后插入一个二维数组,它的值将从单元格A1开始插入。
到目前为止,我设法做到以下几点:

 let neeSheet = context.workbook.worksheets.add("New sheet"); newSheet.activate(); newSheet.getRange("A1").values = twoDimensionalArray; context.sync(); 

但没有工作。

我怎样才能使它工作?
谢谢!

(添加这个答案是为了回应@ avi12添加到上面问题“编辑”下的新信息)

菲利普上面的答案正确地显示了如何将单个值插入到工作表的单元格A1中。 为了解决你在(更新)问题中描述的具体情况,下面是一些代码片段(一个在TypeScript中,另一个在JavaScript中),显示了如何创build一个新的工作表,然后将数据添加到工作表数据的二维数组。 这里要指出的关键是我通过使用getResizedRange (传递数组的维数)来检索范围,以便范围的大小与我插入到其中的数据集的大小相匹配。

注意:您可以使用脚本实验室( https://aka.ms/getscriptlab )快速轻松地自行尝试这些代码片段。 只需安装Script Lab加载项(免费),然后在导航菜单中select“导入”,然后使用以下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); }); } 

如果你只是想设置值,你实际上并不需要加载范围,所以你可以这样做:

 var range = ctx.workbook.worksheets.getItem("Sheet1").getRange("A1"); range.values = [["Value"]]; return ctx.sync();