Excel Javascript API获取多个工作表的位置

时间:2017-05-16 12:43:36

标签: javascript excel office365 office-js office-addins

如何使用Excel Javascript API

获取两个工作表的位置

以下是一张纸的工作原理:

Excel.run(function (ctx) {
    var wSheetName = 'Sheet1';
    var worksheet = ctx.workbook.worksheets.getItem(wSheetName);
    worksheet.load('position')
    return ctx.sync().then(function () {
        console.log(worksheet.position);
    });
});

=>它将0记录到控制台

但如果我试图获得两个工作表的位置,它就不会记录任何内容:

Excel.run(function (ctx) {
    var wSheetName = 'Sheet1';
    var wSheetName2 = 'Evars';
    var worksheet = ctx.workbook.worksheets.getItem(wSheetName);
    var worksheet2 = ctx.workbook.worksheets.getItem(wSheetName2);
    worksheet.load('position')
    worksheet2.load('position')
    return ctx.sync().then(function () {
        console.log(worksheet.position);
        console.log(worksheet2.position);
    });
});

2 个答案:

答案 0 :(得分:0)

找到解决方案here ...也许这会帮助某人

class LoginPage extends Component {

  constructor (props) {
    super(props)
    this.state = {
      waitingOnLogin: false,
      ...
    }

    this.handleLogin = this.handleLogin.bind(this)
  }

  handleLogin (event) {
    event.preventDefault()
    this.state.waitingOnLogin = true
    this.props.userActions.login(this.state.email, this.state.password)
  }

  render() {
    return (
      <div className='up'>
        <form onSubmit={e => this.handleLogin(e)}> ... </form>
        {this.state.waitingOnLogin && <Spinner message='Logging you in'/>} // This does not appear
      </div>
    )
  }
}

答案 1 :(得分:0)

我刚试过你的代码,它运行正常。我想知道你是否只是没有其中一个名字的表格,所以它抛出了一个例外 - 因为你没有一个捕获处理程序,所以它显示为无声。

下面的代码与你的代码基本相同,但有一个catch语句,可以正常工作:

Excel.run(function(ctx) {
    var wSheetName = 'Sheet1';
    var wSheetName2 = 'Sheet2';
    var worksheet = ctx.workbook.worksheets.getItem(wSheetName);
    var worksheet2 = ctx.workbook.worksheets.getItem(wSheetName2);
    worksheet.load('name, position')
    worksheet2.load('name, position')
    return ctx.sync().then(function () {
        console.log(worksheet.name + ": " + worksheet.position);
        console.log(worksheet2.name + ": " + worksheet2.position);
    });
}).catch(function(error) {
    OfficeHelpers.UI.notify(error);
    OfficeHelpers.Utilities.log(error);
})

您可以在新的脚本实验室(https://aka.ms/getscriptlab)中点击五次点击直播。只需安装Script Lab加载项(免费),然后在导航菜单中选择“导入”,并使用以下GIST URL:https://gist.github.com/Zlatkovsky/c61594f1c86970e8dba91fe94b7ca4b6。请参阅more info about importing snippets to Script Lab