从当前工作表中的范围获取行?

我不能在活动工作表中获取表名称。 我有一个下拉菜单,将填充工作簿中的工作表。 我有另一个下拉列表,应该在选定的工作表中获得所有的列名(标题)。 不知何故,range.address有“sheet1!2:2”。

这里是我使用的代码:

function getRow(worksheetName) { Excel.run(function (ctx) { // Queue a command to write the sample data to the worksheet // at moment i have only one worksheet named "Sheet1" var range = ctx.workbook.worksheets.getItem(worksheetName).getRange().getRow(1); range.load('address'); // Run the queued-up commands, and return a promise to indicate task //completion return ctx.sync().then(function () { console.log(range.address); // prints Sheet1!2:2 }) }) .catch(errorHandler); } 

这里是我用来testing的电子表格的链接 。

任何线索我在这里做错了吗?

我build议你用getUsedRange()代替getUsedRange() ,如下所示:

 function getRow(worksheetName) { Excel.run(function (ctx) { var range = ctx.workbook.worksheets.getItem(worksheetName).getUsedRange().getRow(1); range.load('address'); return ctx.sync().then(function () { console.log(range.address); }) }) .catch(errorHandler); } 

Rick Kirkham上面的评论是正确的。 在您链接的文件中,没有表格对象 – 尽pipe工作表包含多行/多列数据,但数据并没有显式包含在表格中

你能够手动操纵这个文件吗? 如果是,那么可以通过执行以下操作来为数据创build一个表对象:

  1. select你想要在表格中的数据。
  2. 选中该数据后,select“ 表格”button(在“ 插入”选项卡上)。
  3. validationinput在创build表提示并select确定

如果您无法手动操作此文件,则可以使用Office JavaScript API创build表(从工作表中的数据范围),如下所述: https : //dev.office.com/docs/加载项/ excel / excel-add-ins-tables#convert-a-range-to-a-table 。