2

我有一个生成报告(表格)的办公室插件。用户第二次运行它时,我想清除该表。

我一直在尝试并通读文档,但我找不到这样做的方法。

有没有人找到解决此类问题的解决方案?

4

2 回答 2

4

使用sheet.getRange().clear()方法。

例子:

Excel.run(function (ctx) {
    var sheet = ctx.workbook.worksheets.getActiveWorksheet();
    sheet.getRange().clear();
    return ctx.sync();
}).catch(function(error) {
    console.log("Error: " + error);
    if (error instanceof OfficeExtension.Error) {
        console.log("Debug info: " + JSON.stringify(error.debugInfo));
    }
});

~ Michael Zlatkovsky,Office 可扩展性团队的开发人员,MSFT

于 2016-02-08T17:11:17.420 回答
0

我知道这是一篇旧帖子,但您可以使用以下功能清除您在 Excel 2013 上生成的报告表。

    DeleteTableDataOnExcel2013(tableID, callback) {
        Office.context.document.goToByIdAsync(tableID, Office.GoToType.Binding, function (asyncResult) {
            Office.context.document.bindings.getByIdAsync(tableID, function (getByIdAsyncResult) {
                if (getByIdAsyncResult.status === Office.AsyncResultStatus.Succeeded) {
                    const binding = getByIdAsyncResult.value;
                    binding.clearFormatsAsync();
                    binding.setFormatsAsync({ cellFormat: { cells: { row: Office.Table.Headers }, format: { backgroundColor: '#FFFFFF', fontColor: '#000000', fontFamily: 'Verdana', fontSize: 12, wrapping: true, fontStyle: 'normal', width: 8.43, height: 15 } } }, function (formatResult) {
                        binding.deleteAllDataValuesAsync();
                        Office.context.document.bindings.releaseByIdAsync(tableID, function (releaseAsyncResult) {
                            callback();
                        });
                    });
                } else {
                    callback();
                }
            });
        });
    }
于 2019-04-19T18:04:38.943 回答