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

Javascript Excel office js API-将值插入空白工作表,javascript,excel,office-js,Javascript,Excel,Office Js,如何将值插入空白表? 我目前知道的插入值的方法是检索范围,然后使用values属性插入值,例如 range.getRange("A1:" + cellBottomRight); range.load("values"); context.sync().then(function () { range.values = twoDimensionalArrayOfValues; }); 是否有一种更简单的方法,使用单个函数简单地插入值,而不是首先检索范围 谢谢 编辑: 我一直在尝试创建一个

如何将值插入空白表?
我目前知道的插入值的方法是检索范围,然后使用
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();

如果只想设置值,实际上不必加载范围,因此可以执行以下操作:

var range = ctx.workbook.worksheets.getItem("Sheet1").getRange("A1");
range.values = [["Value"]];
return ctx.sync();
(添加此答案是为了回应@avi12在“编辑”下添加到上述问题的新信息)

上面Philip的回答正确地显示了如何在工作表的单元格A1中插入单个值。为了解决您在(更新的)问题中描述的特定场景,以下是一些代码片段(一个在TypeScript中,另一个在JavaScript中),它们展示了如何创建新工作表,然后使用二维数据数组将数据添加到工作表中。这里要指出的关键点是,我正在使用getResizedRange(传入数组的维度)检索范围,以便范围的大小与插入到其中的数据集的大小匹配

注意:您可以使用scriptlab()自己快速轻松地尝试这些代码片段。只需安装Script Lab加载项(免费),然后在导航菜单中选择“导入”,并使用以下要点URL:

类型脚本:

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);
    }
}
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);
        });
}
JavaScript:

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);
    }
}
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);
        });
}
(添加此答案是为了回应@avi12在“编辑”下添加到上述问题的新信息)

上面Philip的回答正确地显示了如何在工作表的单元格A1中插入单个值。为了解决您在(更新的)问题中描述的特定场景,以下是一些代码片段(一个在TypeScript中,另一个在JavaScript中),它们展示了如何创建新工作表,然后使用二维数据数组将数据添加到工作表中。这里要指出的关键点是,我正在使用getResizedRange(传入数组的维度)检索范围,以便范围的大小与插入到其中的数据集的大小匹配

注意:您可以使用scriptlab()自己快速轻松地尝试这些代码片段。只需安装Script Lab加载项(免费),然后在导航菜单中选择“导入”,并使用以下要点URL:

类型脚本:

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);
    }
}
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);
        });
}
JavaScript:

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);
    }
}
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);
        });
}

下面详细介绍一下Philip的答案:在您计划随后读取这些属性值的情况下,需要OBJECT.LOAD(属性)。如果您只计划设置对象的属性(在上面描述的场景中是这样),或调用对象上的方法,或使用对象导航到另一个对象,则无需调用object.LOAD(属性).我基本上是尝试创建一个新的工作表,并在其中插入一个我在二维数组中的值。下面的代码确实有效,但只适用于字符串-它不允许我在范围中插入一维或二维数组。当然,在代码的末尾有
context.sync()返回context.sync()更新了主要帖子。请参阅我在下面添加的新答案。要详细说明Philip在下面的答案:在您计划随后读取这些属性值的情况下,需要OBJECT.LOAD(属性)。如果您只计划设置对象的属性(在上面描述的场景中是这样),或调用对象上的方法,或使用对象导航到另一个对象,则无需调用object.LOAD(属性).我基本上是尝试创建一个新的工作表,并在其中插入一个我在二维数组中的值。下面的代码确实有效,但只适用于字符串-它不允许我在范围中插入一维或二维数组。当然,在代码的末尾有
context.sync()返回context.sync()更新了主要帖子。请查看我在下面添加的新答案。在新创建的工作表中插入值如何?当我尝试执行
var newRange=context.workbook.worksheets.add(“新工作表”)
,然后
newRange.activate()-但这不起作用-在新创建的工作表中插入值怎么样?当我尝试执行
var newRange=context.workbook.worksheets.add(“新工作表”)
,然后
newRange.activate()-但这不起作用