2017-05-09 24 views
0

一樣興奮,因爲我約the new Office.js,我似乎很難得到它的執行甚至連最基本的Excel操作併產生了極其有限的成功發現答案在他們的api上。辦公室-JS:在Excel中插入一個新列,並部分地用新的數據填充它

不管怎麼說,我怎麼能插入一個新列到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 | 
------------------------- 
+0

你能畫出來的,你希望看到什麼畫面? –

回答

0

我的日子不好過把我的頭圍繞Office-js做事的方式,但是我能夠把它主要用在某些事情上像:

... 
    sheet = ctx.workbook.worksheets.getItem("Sheet1"); 
    sheet.getRange("C:C").insert('right'); 
    await ctx.sync(); 

    let range = sheet.getRange("C4:C7"); 
    range.values = [["foo"],["bar"]]; 
    await ctx.sync(); 
    ... 

我本來希望新的一列在新列添加到我開始列的右側,添加數據,但因爲我在我的代碼實際上沒有硬編碼地址,這結果變得更加容易,而且仍然能夠按照我想要的方式運行......但我仍然樂於採取更好或更正確的方式來做到這一點。

+1

如果你創建了一個你想要發生的事情的圖畫,那會有所幫助。但無論如何,你不需要中間的'await ctx.sync()',你可以同時擁有這兩個東西。 –

相關問題