Office js 如何在过滤后的office js Excel表格的开头添加新行?
在Excel加载项中使用office js,我使用以下代码在表中添加一行:Office js 如何在过滤后的office js Excel表格的开头添加新行?,office-js,Office Js,在Excel加载项中使用office js,我使用以下代码在表中添加一行: Excel.run(async (context) => { const sheet = context.workbook.worksheets.getItem('mySheet'); const table = sheet.tables.getItemAt(0); const newValues=[['val1', 'val2']]; table.rows.add(0, newV
Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getItem('mySheet');
const table = sheet.tables.getItemAt(0);
const newValues=[['val1', 'val2']];
table.rows.add(0, newValues);
await context.sync();
});
在我过滤表之前(通过使用表标题中的内置过滤器),它工作得很好。然后我得到这个错误:
我尝试用另一种方法,使用“table.getDataBodyRange();”:
在这种情况下,将创建行,但不会设置值
我是否遗漏了什么,或者是否有其他方法在筛选表中创建包含我的值的新行
[编辑]这一新行应添加到表的开头。这里的技巧是在表的末尾插入。如果将“null”传递给table.rows.add,它将追加一行 此外,您还可以大大简化代码,请查看以下内容: (顺便说一句,您可以在脚本实验室中恢复。)
异步函数运行(){
等待Excel.run(异步(上下文)=>{
常量newValues=[['val1','val3']];
const table=context.workbook.worksheets.getItem('Sheet1')。tables.getItem('Table1')。rows.add(null,newValues);
wait context.sync();
});
}
为了方便起见,我想在表的开头添加新行。我将修改我的问题,使之更清楚。
const range = table.getDataBodyRange();
const rangeRow = range.getRow(0);
rangeRow.getEntireRow().insert('Down');
await context.sync();
const insertedRange = range.getRow(0);
insertedRange.values = [['val1', 'val2']];
await context.sync();