Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Office js 如何在过滤后的office js Excel表格的开头添加新行?_Office Js - Fatal编程技术网

Office js 如何在过滤后的office js Excel表格的开头添加新行?

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加载项中使用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, 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();