office-js - showHeaders=false 使用 Javascript 导致意外的表格范围
问题描述
使用 Excel Javascript 时,我注意到表对象中有一些意外行为。为了演示这个问题,我稍微修改了 ScriptLab 示例附带的一些代码,该示例显示了如何将列和行添加到表中。下面的代码来自该示例,但我添加了代码行“expensesTable.showHeaders = false;” 我已经注释掉了代码行“expensesTable.GetHeaderRowRange() ...”。其余的都是一样的。
/** Create a new table with sample data */
async function setup() {
await Excel.run(async (context) => {
context.workbook.worksheets.getItemOrNullObject("Sample").delete();
const sheet = context.workbook.worksheets.add("Sample");
const expensesTable = sheet.tables.add("A1:D1", false /*hasHeaders*/);
expensesTable.name = "ExpensesTable";
expensesTable.showHeaders = false; //only new line
//expensesTable.getHeaderRowRange().values = [["Date", "Merchant", "Category", "Amount"]];
expensesTable.rows.add(null /*add at the end*/, [
["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"]
]);
sheet.getUsedRange().format.autofitColumns();
sheet.getUsedRange().format.autofitRows();
sheet.activate();
await context.sync();
});
}
当你运行它时,结果看起来像这样......
请注意,该表现在定义为范围 A9:D9。如果选择左上角的命名范围“expenseTable”...
它选择行 A9:D9。我本来希望表格在单元格 A1:D8 中。
但是,如果删除“expensesTable.showHeaders = false;”行 现在表格是范围 A1:D8(如我所料)。你最终得到这个...
这是一个错误还是我错过了什么?
更新
我使用的是 7 月 15 日推出的 Excel 版本 1907(内部版本 11901.20080)。https://www.tenforums.com/windows-10-news/136720-office-insider-monthly-targeted-v1907-build-11901-20080-july-15-a.html
在此之前,我不相信(但不是 100% 肯定)这种行为存在。另一个更新,我在我们办公室发现了一台装有 Excel 版本 1906 的 PC,它没有表现出相同的行为。
解决方案
推荐阅读
- in-app-purchase - 如何在 Google Play 结算库 2 中测试待处理交易
- python - Why can't I call dict.get() in f-string? (Python 3.8.1)
- javascript - 收据扫描仪应用程序使用什么免费的 OCR?
- php - How to validate array with RegExr laravel
- javascript - Unlike Java, does an assignment operator in Javascript mean that all operations on the LHS are reflected for the RHS?
- mongodb - Mongodb Index Creation only if not already exists
- python - Python 中的 True 或 False
- java - 从排序链表中删除重复节点
- c# - 后缀的优先级高于前缀,因此给定代码中 sml2 的值应该是 2 但它是 0。为什么?
- asp.net-core - 在 ASp.NET Core 3.1 中外部化配置 (appSettings.json) 文件