自制Office Web插件

写文章还是WORD比较适合,但是发布到BLOG网站却是HTML,每次转换格式都是件麻烦的事情,于是写了个简单的转换插件,能自动将部分内容按BLOG格式转换,减少人为参与。

Office的WEB插件非常简单,就是简单的js和html即可,工程名字取名为CleanHtmlExport,于是先写入口配置文件CleanHtmlExport.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="TaskPaneApp">
<Id>08afd7fe-1631-42f4-84f1-5ba51e2d435a</Id>
<Version>1.0</Version>
<ProviderName>mnstory.net</ProviderName>
<DefaultLocale>zh-CN</DefaultLocale>
<DisplayName DefaultValue="Clean Html Export"/>
<Description DefaultValue="Export contents as Html format which fit my blog"/>
<IconUrl DefaultValue=
"http://officeimg.vo.msecnd.net/_layouts/images/general/office_logo.jpg"/>
<Hosts>
<Host Name="Document"/>
<Host Name="Workbook"/>
</Hosts>
<DefaultSettings>
<SourceLocation DefaultValue="\\mypc\CleanHtmlExport\export.html"/>
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
</OfficeApp>

其中最重要的一条就是SourceLocation用于指定了入口html,这里的位置选择网络位置,例如我的是共享本地目录。 入口html就是普通的html,唯一需要的是引入office的辅助脚本:https://appsforoffice.microsoft.com/lib/1/hosted/office.js
JS的入口函数是:

1
2
3
4
5
6
7
8
9
10
office.initialize = function (reason) {
$(document).ready(function () {
// Use this to check whether the API is supported in the Word client.
if (Office.context.requirements.isSetSupported('WordApi', 1.1)) {
这里加入你的代码
} else {
notice('warning', 'This code requires Word 2016 or greater.');
}
});
};

具体office提供API可以参考:https://dev.office.com/reference/add-ins/word/document
代码写好后,需要加载插件,我用的是office 2016,在“文件/选项/信任中心/受信任的加载目录”里面添加共享程序所在的共享路径:
image001
然后在“插入“选项卡的“我的加载项”中,插入扫描到的加载项,例如我的就是Clean Html Export:
image003
接下来,你就可以使用功能了:
image005

参考资料

  1. Document object (JavaScript API for Word) http://dev.office.com/docs/add-ins/word/word-add-ins-programming-overview