我使用Excel Javascript API实现了Excel 2016的Office任务窗格加载项。它代表了Excel中应用程序功能的一部分。计划是在Office Store中发布它。我们的每个客户都在自己的应用程序的独立域中拥有自己的生产环境由于我只能在加载项清单文件中定义一个SourceLocation元素,但是有许多应用程序实例应该能够访问加载项,我已经在Windows Azure中实现了一个简单的ASP.NET MVC网页,其中一个用户系统会提示输入他的公司名称和凭据。然后我根据用户输入构建一个URL,并重定向到托管我们的应用程序的域。重定向后,客户的加载项正确显示,但Excel API不再可用。触发Office.initialize,但Office.context.requirements设置为空,Excel对象未定义。我也尝试了iframe,但没有任何帮助。在清单文件中指定的ASP.NET网页上加载Excel API。它似乎只在重定向后消失了。是否有人熟悉此类问题,可以在Office加载项中进行重定向?
答案 0 :(得分:0)
您是否在清单文件中设置了应用域?直接在OfficeApp
元素下添加这样的内容应该允许您重定向到该域下的任何页面,并且仍然可以访问Excel
对象。 (这个设置为localhost
因为我还在开发我的加载项。)
<AppDomains>
<AppDomain>http://localhost</AppDomain>
</AppDomains>
答案 1 :(得分:0)
最后我解决了这个问题。 URL参数_host_Info必须从一个页面传递到另一个页面。此参数由Excel在加载项启动时设置,但是当您重定向而不传递它时,网页无法检测它的托管位置,因此不会加载Excel API。 有关主机信息的更多信息: http://simonjaeger.com/where-am-i-detecting-the-office-host-in-office-add-ins/