我有一个办公室加载项,可生成报告(表格)。用户第二次运行它时我想清除该表。
我一直在尝试阅读文档,但我找不到办法来做到这一点。
有没有人找到解决方案来解决这样的问题?
答案 0 :(得分: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
答案 1 :(得分: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();
}
});
});
}