我在添加中需要在Excel中插入表格。但我需要知道我的表插入那里的可用单元格范围是否为空。所以我必须检查一下,如果我的光标位于A1,我们是否有从A1到A15的可用空间,那里没有现有数据。
我尝试了getRangeByIndexes()函数,但这只是给出一个范围。我找不到一个为我的要求返回布尔值的函数。
答案 0 :(得分:1)
Excel将始终具有“空格”来插入数据/表。我想你想在插入表之前确保单元格实际上是空的?如果是这样,您可以获取getSelectedRange() API并使用getOffsetRange()选择所选范围(仅加载地址和值)和范围关联表维度(仅加载值)。然后,您可以检查以确保在插入之前值为空。
另一种方法是检查worksheet.getUsedRange()
以确保使用的范围只是A1(空工作表)。这仅在您确保整个工作表为空(而不仅仅是表的地址)时才有效。
答案 1 :(得分:1)
有很多方法可以做到这一点。我认为最好的方法是使用getSelectedRange
,getAbsoluteResizedRange
和getUsedRangeOrNullObject
await Excel.run(async (context) => {
let numRows = 10;
let numColumns = 3;
let range = context.workbook.getSelectedRange().getCell(0, 0).getAbsoluteResizedRange(numRows, numColumns);
let usedRange = range.getUsedRangeOrNullObject(true /*valuesOnly*/);
await context.sync();
if (usedRange.isNullObject) {
console.log("The range is empty");
} else {
console.log("Sorry, it's already taken")
}
});
您可以在新的脚本实验室(https://aka.ms/getscriptlab)中点击五次点击直播。只需安装Script Lab加载项(免费),然后在导航菜单中选择“导入”,并使用以下GIST URL:https://gist.github.com/Zlatkovsky/4835778375bb5f5b9d49bff4f5d522f0。请参阅more info about importing snippets to Script Lab。
*OrNullObject
返回的对象 - 足够的方法有点不寻常。如果你之前没有遇到过它们,我建议你阅读它in our docs。我还在我的书“Building Office Add-ins using Office.js”(所有利润为charity)中,在题为“9.检查对象是否存在”的章节中详细介绍了它。