原文地址: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。

相关链接

Office 相关应用程序概述
Office 相关应用程序
Introducing “Napa” – Office 365 Development Tools
Use “Napa” Office 365 Development Tools to build apps for Office and SharePoint on the browser
Microsoft’s ‘Napa’: Tools for building apps for the new Office, SharePoint

使用 Napa 创建并调试一个 Office 内容应用 – Hello World的更多相关文章

  1. 从头开始编写一个Orchard网上商店模块(5) - 创建和渲染ProductCatalog的内容类型

    原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-pa ...

  2. 【Android Developers Training】 94. 创建一个空内容提供器(Content Provider)

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  3. PL/Sql 中创建、调试、调用存储过程

    存储过程的详细建立方法 1.先建存储过程 左边的浏览窗口选择 procedures ,会列出所有的存储过程,右击文件夹procedures单击菜单"new",弹出 template ...

  4. jQuery的DOM操作实例(3)——创建节点&&编写一个弹窗

    一.原生JavaScript编写弹窗 二.jQuery编写弹窗 知识点归纳总结: 在原生JavaScript中,创建一个节点: var oDiv=document.createElement(&quo ...

  5. 关于java中创建文件,并且写入内容

    以下内容完全为本人原创,如若转载,请注明出自:http://www.cnblogs.com/XiOrang/ 前两天在项目中因为要通过http请求获取一个比较大的json数据(300KB左右)并且保存 ...

  6. C# Windows Service服务的创建和调试

    前言 关于Windows服务创建和调试的文章在网络上的很多文章里面都有,直接拿过来贴在这里也不过仅仅是个记录,不会让人加深印象.所以本着能够更深刻了解服务项目的创建和调试过程及方法的目的,有了这篇记录 ...

  7. Java基础---Java---IO流-----File 类、递归、删除一个带内容的目录、列出指定目录下文件夹、FilenameFilte

    File 类 用来将文件或者文件夹封装成对象 方便对文件与文件夹进行操作. File对象可以作为参数传递给流的构造函数 流只用操作数据,而封装数据的文件只能用File类 File类常见方法: 1.创建 ...

  8. 如何创建测试程序调试nginx数据结构

    如何创建测试程序调试nginx数据结构 由于在学习nginx的过程中遇到很多数据结构,往往我都想写一个程序来跑一下,看下到底返回什么.最开始想的方法是使用nginx make 完成之后的.o文件,做L ...

  9. 使用Java创建Excel,并添加内容

    使用Java创建Excel,并添加内容 一.依赖的Jar包 jxl.jar,使用jxl操作Excel Jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Ex ...

随机推荐

  1. RGB 的调色

    通过 RGB 三通道所占比的组合(通过三元素长的元组存储),可呈现丰富的色彩样式: [0, 0, 0] ⇒ 黑色,[1, 1, 1] ⇒ 白色 [1, 0, 0] ⇒ 红色,[0, 1, 0] ⇒ 绿 ...

  2. bootstrap 模态框 video视频测试

    链接:https://files.cnblogs.com/files/tele-share/%E8%A7%86%E9%A2%91%E6%B5%8B%E8%AF%95.7z <!DOCTYPE h ...

  3. CentOS 配置epel源

    先查询下有没有epel rpm -qa|grep epel 没有的话到官网https://fedoraproject.org/wiki/EPEL下载rpm包 然后 rpm -ivh 安装 安装完毕后到 ...

  4. markdownpad 2 的使用

    1. 注册 邮箱:Soar360@live.com 授权秘钥: GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M ...

  5. Leetcode 237 Delete Node in a Linked List 链表

    如题 删除是要注意让现在的链表等于下一个链表的值 class Solution { public: void deleteNode(ListNode* node) { ListNode *nextno ...

  6. WPF Windows背景透明其中的文字保持不透明

    原文:WPF Windows背景透明其中的文字保持不透明 版权声明:本文为博主原创,未经允许不得转载.交流.源码资料加群:161154103 https://blog.csdn.net/mpegfou ...

  7. CefSharp中ChromiumWebBrowser打开新页面处理(_blank)

    原文:CefSharp中ChromiumWebBrowser打开新页面处理(_blank) 版权声明:欢迎转载,但是请保留出处说明 https://blog.csdn.net/lanwilliam/a ...

  8. cefsharp 与webbrowser简单对比概述

    原文:cefsharp 与webbrowser简单对比概述 有个项目需要做个简单浏览器,从网上了解到几个相关的组件有winform自带的IE内核的WebBrowser,有第三方组件谷歌内核的webki ...

  9. 【LeetCode】LRU Cache 解决报告

    插话:只写了几个连续的博客,博客排名不再是实际"远在千里之外"该.我们已经进入2一万内. 再接再厉.油! Design and implement a data structure ...

  10. glibc头文件和宏定义

    头文件没啥好说的,无非就是" "和< >的区别,这估计只要是学过C/C++的人都明白.现在的编译器对头文件的包含顺序没有要求,但老的C实现则不一样.当然,我们现在无需关 ...