我不确定"sideloading"是否是正确的术语:是否有一个API以编程方式将基于Office Javascript API的加载项(例如任务窗格应用程序)安装到桌面上的当前/特定文档中(至少在视窗)?
VisualStudio在调试App for Office项目时执行此操作.我如何实现同样的目标?
我需要一种在office.js加载项中设置条件格式的方法.
目前我认为我可以使用VBA根据加载项设置的单元格值来设置它 - 但是能够直接从office.js中执行此操作会非常好.
我正在寻找一些创造性的解决方法,直到Microsoft在加载项中本地实现它.
我正在尝试制作一个插件,将一个段落分成句子然后说出,并在阅读时突出显示句子。在大多数情况下,我可以完成此操作,但当我想突出显示当前正在阅读的句子时,问题就出现了。
我有一个函数,可以根据用户光标的位置将段落分成句子:
function selectionTest() {
Word.run(function (context) {
originalRange = context.document.getSelection();
var paragraphs = originalRange.paragraphs;
context.load(paragraphs, 'text');
context.load(originalRange, 'text');
return context.sync().then(function () {
//Range should only be present in a single paragraph, rather than spanning multiple
if (paragraphs.items.length === 1) {
var paragraph = paragraphs.items[0];
var ranges = paragraph.getTextRanges(['.'], true);
context.load(ranges, 'text');
return context.sync(ranges);
}
}).then(function (sentences) {
...
Run Code Online (Sandbox Code Playgroud)
我想在“originalRange”对象上突出显示文本,以便突出显示正确的句子,如下所示:
function highlightSentence(id, colour) {
Word.run(function (context) {
var paragraphs = originalRange.paragraphs;
context.load(paragraphs, 'text');
context.load(originalRange, 'text');
...
Run Code Online (Sandbox Code Playgroud)
但这会产生错误,因为“originalRange”正在多个上下文中使用。有没有办法让我在多个上下文或其他解决方案中使用“originalRange”?
更新:
我尝试在函数中再次获取段落的句子,使用“context.trackedObjects.add”作为原始范围。当尝试从中获取“paragraphs”属性时,这会导致相同的错误。
我意识到我可能需要的只是段落中的句子,而不是使用原始范围再次获取句子。相反,我实施了不同的解决方案: …
下一个例子给了我"Sheet1!C3":
Excel.run(function (ctx) {
var sheetName = "Sheet1";
var worksheet = ctx.workbook.worksheets.getItem(sheetName);
var cell = worksheet.getCell(3,3);
cell.load('address');
return ctx.sync().then(function() {
console.log(cell.address);
});
}).catch(function(error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
Run Code Online (Sandbox Code Playgroud)
是否可以使用开始和结束行和列号获得像“Sheet1!C3:E4”这样的完整地址?
我有一个使用 Angular 构建的 Outlook Office 插件,它使用了该Office.js库。加载项的目的是对当前显示的消息执行一次性操作。一旦为加载项中的操作单击提交按钮,就无需再打开加载项。
有没有办法从应用程序内部完全关闭加载项框架?例如,类似的东西Office.close();。
有一个工作表名称Sheet1,我想要一个包含该工作表单元格中使用的所有公式的数组。像这样的东西:
Excel.run(function (ctx) {
var formulas = getAllFormulasOfSheet(ctx, 'Sheet1')
// or
getAllFormulasOfSheet(ctx, 'Sheet1').then(function(result){
var formulas = result;
});
// formulas should be like:
['SUM(A1:B3)', 'SUM(A3:C3)']
})
Run Code Online (Sandbox Code Playgroud) 我想将 JavaScript API 中的合并字段 ( <<xyz>>) 插入到单词表中。但是,我无法找到 Office Word 加载项的 JavaScript API。
因此,我正在尝试使用 react 设置 Office-js excel 加载项(使用此处找到的 yeoman office-js 生成器https://github.com/OfficeDev/generator-office)并且遇到配置添加的问题-in 使用多个路由。看起来不像传统的 React 路由开箱即用(目前正在尝试使用 react-router-dom)。有人知道我会怎么做吗?特别是,看看我应该如何配置某种路由、webpack.config.js 和 manifest.xml。
例如,希望加载类似于 route=[baseUrl]/ 上的 LandingComponent 和 [baseUrl]/signup 上的 SignupComponent 之类的东西。
对于常规的旧 React,我想做的事情看起来像这样
const Routes = () => (
<div>
<Route path="/" exact component={LandingComponent} />
<Route path="/signup" exact component={SignupComponent} />
</div>
)
Run Code Online (Sandbox Code Playgroud)
我怀疑需要修改的关键代码片段可能涉及 webpack.config.js 中的某些内容(对于实际配置 webpack 来说是新的痛苦,不确定我是否需要与这个人打交道),
清单文件
const Routes = () => (
<div>
<Route path="/" exact component={LandingComponent} />
<Route path="/signup" exact component={SignupComponent} />
</div>
)
Run Code Online (Sandbox Code Playgroud)
此外,我正在考虑做一些事情,比如从上面的 URL 中删除“.html”(目标是插件应该默认在“ https://localhost:3000/ ”加载登陆,你可以通过按钮导航到“ https://localhost:3000/signup ”,而插件当前默认加载“ https://localhost:3000/taskpane.html …
想要在打字稿中使用officejs显示/隐藏自定义功能区按钮。
尝试使用 jquery 获取自定义功能区按钮的元素,但无法获得相同的元素,因为每次 excel 运行时 id 都会变得随机。
$("#id__1157").id.hide()
预期结果:想要使用 typescript 中的 Officejs 在 Excel 中显示/隐藏自定义功能区按钮
我正在使用 Excel Javascript API,在搜索文档后,仍然找不到我想要实现的解决方案。
因此,我想将所有内容设置为数字格式“文本”,这样 Excel 的自动格式设置就不会与任何单元格的内容混淆(不会删除前导零或更改日期格式)。
文档建议通过以下方式更改格式:
Worksheets("Sheet1").Range("A17").NumberFormat = "General"
但工作表对象似乎不包含 Range 方法。
相反,我尝试在我的表上使用 getRange 方法,如下所示:
constructionTable.getRange().NumberFormat = "Text"
这没有引发任何错误,但似乎没有做任何事情。
格式化表格范围以前适用于这样的事情:
constructionTable.getRange().format.autofitColumns()
所以我还检查了是否constructionTable.getRange().range.format包含名为 NumberFormat 或 numberFormat 的方法,但它没有:(
有人在这方面取得过成功吗?
office-js ×10
javascript ×4
excel ×3
ms-office ×2
office365 ×2
ms-word ×1
office-2016 ×1
reactjs ×1
ribbonx ×1
vsto ×1
word-addins ×1
word-field ×1