如何在Office JS中清除Excel表格的默认样式?
解决Office JS创建Excel表格时清除样式的问题
在Office JS中,目前没有直接的"清除表格样式"API,但可以通过两种方式实现接近无样式的表格效果:
方法1:使用最简洁的内置表格样式
"White, Table Style Light 1"是Excel内置的最接近无样式的表格样式,它没有额外填充色、边框,仅保留表格的结构特性(如筛选功能)。只需在创建表格后添加一行代码设置样式:
expensesTable.style = "White, Table Style Light 1";
修改后的完整代码:
await Excel.run(async (context) => { let sheet = context.workbook.worksheets.getItem("Sample"); let expensesTable = sheet.tables.add("A1:D1", true /*hasHeaders*/); expensesTable.name = "ExpensesTable"; // 设置表格为最简洁的内置样式 expensesTable.style = "White, Table Style Light 1"; expensesTable.getHeaderRowRange().values = [["Date", "Merchant", "Category", "Amount"]]; expensesTable.rows.add(null /*add rows to the end of the table*/, [ ["1/1/2017", "The Phone Company", "Communications", "$120"], ["1/2/2017", "Northwind Electric Cars", "Transportation", "$142"], ["1/5/2017", "Best For You Organics Company", "Groceries", "$27"], ["1/10/2017", "Coho Vineyard", "Restaurant", "$33"], ["1/11/2017", "Bellows College", "Education", "$350"], ["1/15/2017", "Trey Research", "Other", "$135"], ["1/15/2017", "Best For You Organics Company", "Groceries", "$97"] ]); if (Office.context.requirements.isSetSupported("ExcelApi", "1.2")) { sheet.getUsedRange().format.autofitColumns(); sheet.getUsedRange().format.autofitRows(); } sheet.activate(); await context.sync(); });
方法2:完全清除所有格式(包括表头样式)
如果需要彻底移除所有表格相关格式(比如表头的加粗、背景色),可以在设置样式后,额外清除表头和数据区域的格式:
// 清除表头行的格式 expensesTable.getHeaderRowRange().format.fill.clear(); expensesTable.getHeaderRowRange().format.font.bold = false; expensesTable.getHeaderRowRange().format.borders.clear(); // 清除数据区域的格式 expensesTable.getDataBodyRange().format.fill.clear(); expensesTable.getDataBodyRange().format.borders.clear();
将这段代码添加到await context.sync()之前即可,此时表格会和普通单元格格式完全一致,同时保留表格的结构功能(如排序、筛选)。
内容的提问来源于stack exchange,提问作者Shiv Yadav
相关产品推荐
相关产品推荐

