原文地址: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. Erlang 杂记

    学习Erlang的时候在书的留白处随手记录了一些东西,还有一些记录在了demo的注释里面,今天抽时间整理出来了一部分,分享一下. Erlang的设计哲学是为每一个独立的事件创建一个新进程. Erlan ...

  2. 模块化模式与 OSGi

    模块化模式与 OSGi Android 模块化探索与实践 一.前言 万维网发明人 Tim Berners-Lee 谈到设计原理时说过:“简单性和模块化是软件工程的基石:分布式和容错性是互联网的生命.” ...

  3. Mint UI 使用指南

    上来直接在webpack里将Mint UI引入项目,发现各种问题.饿了么组件库文档太坑了,好多地方写错,有些该说明的地方没说,比如例子里单文件.vue组件里用的类post-css处理器,我一直使用SA ...

  4. Android音频输入通道的底层硬件和软件开发分析

    Android潜在的发展音频输入通道的软硬件分析 我们都知道耳机Mic集成在一直的那种四段耳机Mic插头是Android设备上比較经常使用.可是也会有分开的情况,比較假设在普通的PC机中装Androi ...

  5. 简单几步教你实现移动硬盘PE、装win7/vista! 一盘在手,系统无忧!

    第一步:格式化u盘成为ntfs格式.(以下同样适用于移动硬盘)提供两个方法:,方法一是格式化成fat32,再到命令提示符即俗称的dos窗口运行convert.方法二在xp下,点击u盘所在盘符,选择属性 ...

  6. WPF的逻辑树与视觉树(2)Visual容器

    原文:WPF的逻辑树与视觉树(2)Visual容器   一.摘要 虽然我们平时几乎不会从该类派生,但要想了解视觉树就必须要了解Visual,Visual是一个基本抽象类,继承自DependencyOb ...

  7. tinkerpop(1) 地图数据库console科研

    原创文章连接: http://blog.csdn.net/freewebsys/article/details/46348975 转载请注明出处. 1,关于图数据库 tinkerpop是apache孵 ...

  8. 在.net core中一个简单的加密算法

    using System; using System.Text; //System.Security下加密算法的命名空间 using System.Security.Cryptography; nam ...

  9. Python实现多线程下载

    #!/usr/bin/python # -*- coding: utf-8 -*- # filename: paxel.py '''It is a multi-thread downloading t ...

  10. WPF3D绘图的基础

    原文:WPF3D绘图的基础 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37591671/article/details/69487096 ...