Office 365 E3 开发者版续订
一年前通过微软的 Office 开发人员计划免费订阅了一年的 Office ,其中也包含了 免费的 OneDrive 。一年后收到了 Office Developer 的到期邮件提醒,大致内容就是:
我申请的 Office 没有用于开发,到期后将不再可用,同时我的数据在一个月后也会被删除。
因为我很少使用 Office ,所以 Office 到期对我的影响倒是不大,但是 我的 OneDrive 里存储了大量的文件,在短时间内无法完成搬运,所以只能续订。
从 2019 年 4 月 开始 Office 365 E3 的免费订阅期限从一年改为了三个月,只要在三个月内有开发活动就可以续订。这里所说的开发就是开发一些能和 Office 进行交互的应用。
Office 的加载项可以使用 JavaScript 来开发,在开发之前需要先安装 Node.js。
创建项目
这里开发一个 Word 的加载项,首先需要安装相关的外接程序,在命令行输入 :
npm install -g yo generator-office
为了方便管理文件,需要在空目录中创建项目,输入:
yo office
创建项目。
接下来是关于是否允许上传匿名统计信息的询问:
? ==========================================================================
We're constantly looking for ways to make yo better!
May we anonymously report usage statistics to improve the tool over time?
More info: https://github.com/yeoman/insight & http://yeoman.io
========================================================================== (Y/n)
输入 y
或 n
然后回车。
如下界面时按回车继续:
_-----_ ╭──────────────────────────╮
| | │ Welcome to the Office │
|--(o)--| │ Add-in generator, by │
`---------´ │ @OfficeDev! Let's create │
( _´U`_ ) │ a project together! │
/___A___\ /╰──────────────────────────╯
| ~ |
__'.___.'__
´ ` |° ´ Y `
? Office Add-in CLI tools collect anonymized usage data which is sent to Microsoft to help improve our product. Please read our privacy notice at
https://aka.ms/OfficeAddInCLIPrivacy. To disable data collection, choose Exit and run “npx office-addin-usage-data off”.
(Use arrow keys)
> Continue
Exit
项目类型我这里就使用默认的 Office Add-in Task Pane project
:
Choose a project type:
> Office Add-in Task Pane project
Office Add-in Task Pane project using Angular framework
Office Add-in Task Pane project using React framework
Office Add-in Task Pane project supporting single sign-on
Office Add-in project containing the manifest only
Excel Custom Functions Add-in project
直接按回车继续。
语言我这里选择 JavaScript
:
Choose a script type:
TypeScript
> JavaScript
可以用上下光标键选择,回车继续。
输入项目名称,我这里输入的是 test
:
? What do you want to name your add-in? test
选择你要开发的 Office 程序,我这里选择的是 Word:
Which Office client application would you like to support?
Excel
Onenote
Outlook
Powerpoint
Project
> Word
确认选择无误的话,按回车创建项目:
Continue
? Choose a project type: Office Add-in Task Pane project
? Choose a script type: JavaScript
? What do you want to name your add-in? test
? Which Office client application would you like to support? Word
----------------------------------------------------------------------------------
Creating test add-in for Word using JavaScript and Taskpane at E:\office\test
----------------------------------------------------------------------------------
运行项目
创建完成后进入项目目录,输入:
npm start
启动本地服务器。
第一次启动服务的时候可能会出现一个安装证书的授权询问,选择 是
安装本地证书,同时 Office 程序也会自动启动。
在 Office 工具栏的右侧会多出一个 Show Taskpane
,如下:
点击 Show Taskpane
,如果出现 无法加载
之类的提示的话,可以在命令行中输入:
CheckNetIsolation LoopbackExempt -a -n="microsoft.win32webviewhost_cw5n1h2txyewy"
如果看到如下界面:
说明服务运行成功,程序的 HTML 代码也会显示在这个区域。点击 Run
链接可以把 Hello World
添加到 Word 中。
如果正常登录了 Office 账号的话,已经可以被检测到开发活动了,Office 应该会自动续订。
如果续订成功的话会有邮件通知,也可以访问 https://developer.microsoft.com/zh-CN/office/profile
查看到期时间:
如果还是无法续订的话,可以简单学习一下 Office 相关的开发,可以用 HTML + CSS + JavaScript 开发,也不是太难。
简单开发
项目目录中的 src/taskpane/taskpane.html
中的内容就是 Office 任务窗格中显示的内容。
下面实现点击按钮在 Word 中添加一段文字。
用代码编辑器打开项目目录中的 src/taskpane/taskpane.html
,删除 main
标签中的内容,在 main
标签中添加一个按钮,如下:
<main id="app-body" class="ms-welcome__main" style="display: none;">
<button class="ms-Button" id="insert-paragraph">插入一段文本</button>
</main>
打开项目目录下的 src/taskpane/taskpane.js
,删除 run
函数和 run
链接的点击事件。
增加一个 insertParagraph
函数,insertParagraph
函数内容如下:
function insertParagraph() {
Word.run(function (context) {
let docBody = context.document.body;
// 在第一行插入文字
docBody.insertParagraph("这段文字会被插入到 Word 中", "Start");
return context.sync();
}).catch(function (error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
}
给 id
为 insert-paragraph
的按钮添加一个点击事件,点击事件绑定 insertParagraph
函数,如下:
document.querySelector('#insert-paragraph').onclick = insertParagraph;
taskpane.js
的内容如下:
Office.onReady(info => {
if (info.host === Office.HostType.Word) {
document.getElementById("sideload-msg").style.display = "none";
document.getElementById("app-body").style.display = "flex";
document.querySelector('#insert-paragraph').onclick = insertParagraph;
}
});
function insertParagraph() {
Word.run(function (context) {
let docBody = context.document.body;
// 在第一行插入文字
docBody.insertParagraph("这段文字会被插入到 Word 中", "Start");
return context.sync();
}).catch(function (error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
}
在服务器正常运行的情况下,保存文件后切换到 Word 即可看到效果,点击按钮就能在 Word 中插入一段文字。
这里主要是为了续订 Office ,所以开发相关的内容不多。如果您需要详细的 Office 开发教程,微软也提供了中文文档,您可以访问 Office 开发人员中心 来查看详细的开发教程。
如果您想保持 Office 的续订状态,至少每三个月就要开发一次。
版权声明:本文为原创文章,版权归 Mr. Ma's Blog 所有,转载请联系博主获得授权。
本文地址:https://www.misterma.com/archives/852/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。