簡體   English   中英

Excel office-js API-將值插入空白表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM