Office-js:在Excel中插入一个新列,并用新数据部分填充它

时间:2017-05-09 17:00:39

标签: ms-office office-js excel-2016

我对the new Office.js感到兴奋,我似乎很难让它执行最基本的excel操作,并且在api上找到答案的成功非常有限。

无论如何,如何在Excel中插入新列并用数据部分填充?

我有类似的东西:

Excel.run(async (ctx) => { 
    let sheet = ctx.workbook.worksheets.getItem("Sheet1");
    let range = sheet.getRange("C4:C5").insert('right');
    range.values = [["foo"],["bar"]];
    await ctx.sync();   
}).catch(function (error) {
    console.log(error);
});

但是这段代码的问题在于它将新数据插入到我希望它的位置,在C列的右侧,但是它不是创建一个新列,而是仅仅在所有的数据中移位数据其他列,但仅限于第4-5行,这会影响我的电子表格/表格的其余部分。

相反,我想首先在C的右侧插入一个新列,然后在该新列中为其分配一个值数组以部分填充它。感谢。

编辑:
这就是我得到的:

 _______________________
|  C  |  D  |  E  |  F  |
-------------------------
| ... | john| 4   | ... |
| ... | jeff| 87  | ... |
| ... | mary| 9   | ... |
| ... |  foo| cory| 54  |    <--- just shifts data in rows 4 and 5 over
| ... |  bar| eric| 33  |
| ... | paul| 5   | ... |
-------------------------
   ^----------------------------- column I have a reference/address too (column C)

这就是我想要的:

 _______________________
|  C  |  D  |  E  |  F  |
-------------------------
| ... |     | john| 4   |   
| ... |     | jeff| 87  |
| ... |     | mary| 9   |
| ... |  foo| cory| 54  |
| ... |  bar| eric| 33  |
| ... |     | paul| 5   |
-------------------------

1 个答案:

答案 0 :(得分:0)

我很难绕着Office-js的方式绕过我的工作方式,但我能够得到它的主要是:

{{1}}

我原本希望在我开始使用的列的右侧添加一个新列并在该新列中添加数据,但由于我实际上并没有在代码中硬编码地址,因此结果更容易仍然足够接近我想要的......但我仍然对更好或更正确的方式持开放态度。