原文地址: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. Word Break II -- leetcode

    Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each ...

  2. KindEditor4.1.10,支持粘贴图片

    转载自https://blog.csdn.net/jimmy0021/article/details/73251406 我已经忘记我是不是从这个博主的那里找到的解决kindeditor粘贴图片的方法了 ...

  3. 高并发场景之RabbitMQ

    高并发场景之RabbitMQ 上次我们介绍了在单机.集群下高并发场景可以选择的一些方案,传送门:高并发场景之一般解决方案 但是也发现了一些问题,比如集群下使用ConcurrentQueue或加锁都不能 ...

  4. tcl/tk 调用选择路径的窗口

    tk_chooseDirectory -title "选择工作空间" -initialdir "D:\\" -title 指定打开后显示的title -init ...

  5. 分布式事务slides

    最近看了<分布式系统概念与设计 第 5 版>的分布式事务章节,整理了一份 ppt.还有恢复部分没有收录进来,有空再整理啦. 下面是传到 deckspeaker 上的 slides 展示: ...

  6. QImage学习学习

    QImage这个类之前用过,无外乎是加载一个图片文件显示出来,并没有做过多的研究,目前工作中用到了灰度图以及图片的像素操作,重新学习了下,记录记录. 一些基本操作方法 获取图像的首地址: const ...

  7. Android app设置全屏模式

    Android中,为APP设置全屏模式,主要有如下几种方式: 在manifest中设置 在项目中找到AndroidManifest.xml配置文件,找到Activity所在的节点,添加theme. & ...

  8. numpy 维度与轴的问题

    0. 多维数组的显示问题 >> X = np.reshape(np.arange(24), (2, 3, 4)) # 也即 2 行 3 列的 4 个平面(plane) >> X ...

  9. Leetcode 94 Binary Tree Inorder Traversal 二叉树

    二叉树的中序遍历,即左子树,根, 右子树 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *lef ...

  10. Python小技巧1

    原文: http://blog.csdn.net/jclass/article/details/6144647 一. 打印并输出到文件 >>> print("aa" ...