标签: office-js

在桌面上以编程方式"侧载"Office for Office

我不确定"sideloading"是否是正确的术语:是否有一个API以编程方式将基于Office Javascript API的加载项(例如任务窗格应用程序)安装到桌面上的当前/特定文档中(至少在视窗)?

VisualStudio在调试App for Office项目时执行此操作.我如何实现同样的目标?

vsto office365 office365-apps office-js

2
推荐指数
1
解决办法
347
查看次数

在office.js中为excel设置条件格式

我需要一种在加载项中设置条件格式的方法.

目前我认为我可以使用VBA根据加载项设置的单元格值来设置它 - 但是能够直接从office.js中执行此操作会非常好.

我正在寻找一些创造性的解决方法,直到Microsoft在加载项中本地实现它.

javascript excel ms-office office-js

2
推荐指数
1
解决办法
2157
查看次数

Word Online 加载项:跨多个上下文使用对象

我正在尝试制作一个插件,将一个段落分成句子然后说出,并在阅读时突出显示句子。在大多数情况下,我可以完成此操作,但当我想突出显示当前正在阅读的句子时,问题就出现了。

我有一个函数,可以根据用户光标的位置将段落分成句子:

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”属性时,这会导致相同的错误。

我意识到我可能需要的只是段落中的句子,而不是使用原始范围再次获取句子。相反,我实施了不同的解决方案: …

javascript ms-office office365 office-js

2
推荐指数
1
解决办法
1929
查看次数

如何使用 office.js Excel Addin 中的行号和列号获取完整的 Excel 范围地址?

下一个例子给了我"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”这样的完整地址?

javascript excel office-2016 office-js

2
推荐指数
1
解决办法
1461
查看次数

从应用程序内部关闭 Outlook 插件

我有一个使用 Angular 构建的 Outlook Office 插件,它使用了该Office.js库。加载项的目的是对当前显示的消息执行一次性操作。一旦为加载项中的操作单击提交按钮,就无需再打开加载项。

有没有办法从应用程序内部完全关闭加载项框架?例如,类似的东西Office.close();

office-js outlook-web-addins

2
推荐指数
1
解决办法
636
查看次数

如何获取office.js中一个sheet的所有公式

有一个工作表名称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)

office-addins office-js

2
推荐指数
1
解决办法
1050
查看次数

使用 JavaScript API 添加合并字段

我想将 JavaScript API 中的合并字段 ( <<xyz>>) 插入到单词表中。但是,我无法找到 Office Word 加载项的 JavaScript API。

ms-word office-addins word-field word-addins office-js

2
推荐指数
1
解决办法
1732
查看次数

如何配置 Office-js excel react 插件以使用 react-router-dom 或替代解决方案?

因此,我正在尝试使用 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 …

reactjs office-js react-router-dom

2
推荐指数
1
解决办法
1030
查看次数

Officejs 中的显示/隐藏功能区命令

想要在打字稿中使用officejs显示/隐藏自定义功能区按钮。

尝试使用 jquery 获取自定义功能区按钮的元素,但无法获得相同的元素,因为每次 excel 运行时 id 都会变得随机。

$("#id__1157").id.hide()

预期结果:想要使用 typescript 中的 Officejs 在 Excel 中显示/隐藏自定义功能区按钮

ribbonx office-js

2
推荐指数
1
解决办法
529
查看次数

无法使用 Excel JavaScript API 设置 NumberFormat

我正在使用 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 的方法,但它没有:(

有人在这方面取得过成功吗?

javascript excel office-js

2
推荐指数
1
解决办法
2025
查看次数