【发布时间】:2016-11-17 16:16:45
【问题描述】:
在我的 Excel 选项卡窗格插件中,我希望仅基于活动的选定行从范围中获取一些行。
最初我的数据位于“Sheet1!H5:I16”中,我在工作表中只选择没有表格 f.e. 的行。 "Sheet1!8:10"
为了检测选定的行,我得到选定的范围并加载一些选项:
Excel.run(function (ctx) {
var selectedRange = ctx.workbook.getSelectedRange();
selectedRange.load(['address', 'rowIndex', 'rowCount']);
return ctx.sync().then(function() {
console.log(selectedRange.address);
});
});
它给了我地址 "Sheet1!8:10" 和 selectedRange.rowIndex=7 和 selectedRange.rowCount=3
现在我从选择中减去我的范围行:
var subsIndex = selectedRange.rowIndex - 5 // 5 is start index H5
这里我的行在数据范围 rowIndex 内,它是 3。
再次:对于整个工作表,我的 rowIndex 为 7,对于选择,与我的数据范围相交,行索引为 3。
现在我想从整个数据 Sheet1!H5:I16 中获取内部数据范围 rowIndex 的第一行(它必须是 Sheet1!H8:I10),仅基于选定的行(selectedRange.rowIndex=7 和 selectedRange.rowCount=3 ):
Excel.run(function (ctx) {
var sheetName = "Sheet1";
var rangeAddress = "H5:I16"; // my whole data range
var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress).getRow(subsIndex ); //try to get row number 3
range.load('address');
return ctx.sync().then(function() {
console.log(range.address); // gives me Sheet1!H5:I16 ???
});
});
为什么 getRange(3) 只给我整个范围地址 Sheet1!H5:I16 按索引 3 插入的行地址:Sheet1!H8:I8 ?
橙色:数据范围
红色:需要的行
【问题讨论】:
-
我尝试了您的示例,但输出为 Sheet1!H8:I8,这正是我所期望的?
-
是的,这就是我所期望的。
标签: javascript excel office365 office-js