使用 Napa 创建并调试一个 Office 内容应用 – Hello World
原文地址:http://simpeng.net/office-add-in/%e4%bd%bf%e7%94%a8-napa-%e5%88%9b%e5%bb%ba%e5%b9%b6%e8%b0%83%e8%af%95%e4%b8%80%e4%b8%aa-office-%e5%86%85%e5%ae%b9%e5%ba%94%e7%94%a8-hello-world/, 为了本博客的内容完整性,转载至此。
准备工作
开发 Office Add-Ins 基本等同于开发常见的 Web 应用程序,add-ins 实际运行内嵌于 Office 平台上的 iframe 中。接下来让我们看看 Office Add-ins 开发中要用到哪些技术,:
- 通过 JavaScript 和成熟框架(如 jQuery) 实现交互式 UI 和自定义逻辑;
- 利用 HTTP 协议和 AJAX 异步编程技术调用相应数据源的 REST API 或其他 Web 服务;
- 使用服务器端脚本语言(如 ASP 或 PHP)实现,这些语言运行于服务器端;
- 利用 HTML5 、CSS3 优化网页表现和布局。
接下来,我们通过一个简单的例子来介绍如何开发 Office Add-Ins。
微软提供了两种 IDE 开发工具帮助我们开发:
- 在已安装 Office 2013 (富客户端)和 Visual Studio 2012 (或更新版本)的 PC 机上进行开发。
- 使用 Office 365 网页版开发工具(Napa)进行开发 – 无需安装任何客户端软件,需要 Microsoft 帐户登录。
这里我们采用第二种方式进行开发,如果您还没有注册 Microsoft 账号,请点击此处注册。 另外,值得一说的,如果不想用 VS 和 Napa 进行开发,完全可以按照官网上的步骤,使用 Notepad 进行(显然我没有试过 :))。
开始
1. 打开 Napa
通过点击上述链接,并用 Microsoft 账号登录,进入 Napa 开发工具。

2. 创建一个 Office 内容应用。
点击“添加新的项目”,并输入项目名称,选择“Office 内容应用”, 点击“创建”。

3. 点击“运行项目”,等待响应
创建完新的内容应用项目后,Napa自动添加了简单的测试程序,您只需点击“运行项目”,等待程序部署。

4. 允许浏览器弹出新的窗口显示 Web 版的Excel 页面,如图所示,App 类似于图表一样“浮在”上面。
由于这个创建的 Add-In 是首次插入在这个 Excel 文档中,在 Add-In 启动之前会告知用户: 这是新的 Office 应用程序,如果您选择启动,它将对此文档的内容具有访问权限…。 另外还会告诉用户这个应用的发布者是谁。用户需要点击“开始”才能使用此应用。

5. 点击“开始”后,App 启动如图所示。
理论上您可以选择 Excel 中的部分文字,然后点击 “Get data from selection”,此时, 应用会将您选取的部分中的数据显示在 Add-In 内,而应用中用来取得 Excel 选中部分文字的 API 就是 Office 平台提供的 JSOM (Office.js) 提供。 可以在官方网站处详细了解 Office 平台对不同的 Office 软件(Word, Excel,PowerPoint,…)提供的 API 支持。 然而,由于处于调试阶段,打开的 Excel 文档也处于只读的状态,所以也无法添加新的数据进行测试(尴尬 o(>﹏<)o)。
6. 接下来我们来看看这个内容应用项目包含的文件。
其中 Home.html是这个 App 启动的首页面(当然, 我们可以根据需要在 App 的 Manifest 中设定首页面,将在后面介绍)。 另外也像其他 Web 应用程序一样,我们可以任意添加 js,css,html,图片等等网页元素(不局限于静态的 Web 编程技术,也可以使用 php 等运行于服务端的语言)。
另外,可以看到 Home.html 中引用了 https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js ,这正是 Office 平台提供的用于和文档交互的 JSOM API。


相关链接
使用 Napa 创建并调试一个 Office 内容应用 – Hello World的更多相关文章
- 从头开始编写一个Orchard网上商店模块(5) - 创建和渲染ProductCatalog的内容类型
原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-pa ...
- 【Android Developers Training】 94. 创建一个空内容提供器(Content Provider)
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- PL/Sql 中创建、调试、调用存储过程
存储过程的详细建立方法 1.先建存储过程 左边的浏览窗口选择 procedures ,会列出所有的存储过程,右击文件夹procedures单击菜单"new",弹出 template ...
- jQuery的DOM操作实例(3)——创建节点&&编写一个弹窗
一.原生JavaScript编写弹窗 二.jQuery编写弹窗 知识点归纳总结: 在原生JavaScript中,创建一个节点: var oDiv=document.createElement(&quo ...
- 关于java中创建文件,并且写入内容
以下内容完全为本人原创,如若转载,请注明出自:http://www.cnblogs.com/XiOrang/ 前两天在项目中因为要通过http请求获取一个比较大的json数据(300KB左右)并且保存 ...
- C# Windows Service服务的创建和调试
前言 关于Windows服务创建和调试的文章在网络上的很多文章里面都有,直接拿过来贴在这里也不过仅仅是个记录,不会让人加深印象.所以本着能够更深刻了解服务项目的创建和调试过程及方法的目的,有了这篇记录 ...
- Java基础---Java---IO流-----File 类、递归、删除一个带内容的目录、列出指定目录下文件夹、FilenameFilte
File 类 用来将文件或者文件夹封装成对象 方便对文件与文件夹进行操作. File对象可以作为参数传递给流的构造函数 流只用操作数据,而封装数据的文件只能用File类 File类常见方法: 1.创建 ...
- 如何创建测试程序调试nginx数据结构
如何创建测试程序调试nginx数据结构 由于在学习nginx的过程中遇到很多数据结构,往往我都想写一个程序来跑一下,看下到底返回什么.最开始想的方法是使用nginx make 完成之后的.o文件,做L ...
- 使用Java创建Excel,并添加内容
使用Java创建Excel,并添加内容 一.依赖的Jar包 jxl.jar,使用jxl操作Excel Jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Ex ...
随机推荐
- 【codeforces 777D】Cloud of Hashtags
[题目链接]:http://codeforces.com/contest/777/problem/D [题意] 让你通过删除字符串的末尾字符的方式; 使得所给的字符串以字典序升序排序; 不能交换字符串 ...
- 【noip模拟】连环
[题目描述] 惠子说:“连环可解也”. 这说明他是一个破解机关的高手,连连环都能解开,鲁班锁什么的自然不在话下.一位鲁班的后人非常不服气,于是找到惠子,给他出了一道题. 他首先给了惠子一个长度为 n的 ...
- jeesuite分布式框架环境搭建
一.简述 这是菜鸟走向开源的第一步.开源项目jeesuite:http://git.oschina.net/vakinge/jeesuite-libs jeesuite是托管在码云上的开源项目,是一个 ...
- mongoose ObjectId.toString()
node中一般我们经常对id进行判断,有的id是string类型,有的是ObjectId(''),这时候就可以使用mongoose的toString方法,将它转换成string
- PAT 1021-1030 题解
早期部分代码用 Java 实现.由于 PAT 虽然支持各种语言,但只有 C/C++标程来限定时间,许多题目用 Java 读入数据就已经超时,后来转投 C/C++.浏览全部代码:请戳 本文谨代表个人思路 ...
- win10 uwp 使用 Matrix3DProjection 进行 3d 投影
原文:win10 uwp 使用 Matrix3DProjection 进行 3d 投影 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 ...
- Android开发小知识
修改Android app图标(Android Studio) 1. res\drawable 放置icon.png(此图片是你需要修改的图标); 2. 修改AndroidManifest.xml ...
- 参数的范数正则/惩罚(parameter norm penalties)
1. L2 范数 J~(w;X,y)=J(w;X,y)+α2wTw J 表示的是原始的目标函数,J~ 则是二范数约束后的新的目标函数. 则根据梯度下降算法有: ∇wJ~=∇wJ+αw w←w−ϵ∇wJ ...
- latex 常用环境(environment)
align \begin{align} \overline{A \cup B} &= \overline{A} \cap \overline{B}, \\ \overline{A \cap B ...
- python之强大的日志模块
1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message')logging.info('This is info mess ...
