使用Office加载项清除Excel 2013中的工作表

问题描述 投票:1回答:2

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

我一直在尝试阅读文档,但我找不到一种方法来做到这一点。

有没有人找到解决方案来解决这样的问题?

javascript excel-2013 office-addins office-js
2个回答
2
投票

使用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 Extensibility团队的开发人员,MSFT


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();
                }
            });
        });
    }
© www.soinside.com 2019 - 2024. All rights reserved.