如何将值插入空白页?
我目前知道插入值的方法是检索范围,然后使用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();
但没有工作。
我怎样才能让它发挥作用? 谢谢!
答案 0 :(得分:3)
如果您只想设置值,则实际上不必加载范围,因此您可以这样做:
var range = ctx.workbook.worksheets.getItem("Sheet1").getRange("A1");
range.values = [["Value"]];
return ctx.sync();
答案 1 :(得分:0)
(添加此答案以回应@ avi12添加到上述问题的新信息,在“编辑”下)
Philip的上述答案正确地说明了如何将单个值插入工作表的单元格A1中。为了解决您在(更新的)问题中描述的特定方案,下面是一些代码片段(一个在TypeScript中,另一个在JavaScript中),它们展示了如何创建新工作表,然后将数据添加到工作表中,二维数据阵列。这里要指出的关键是我正在使用 getResizedRange (传入我的数组的维度)来检索范围,以便范围的大小与我的数据集的大小相匹配插入它。
注意: 您可以使用脚本实验室(https://aka.ms/getscriptlab)快速轻松地自行尝试这些代码段。只需安装Script Lab加载项(免费),然后在导航菜单中选择“导入”,并使用以下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);
});
}