你的位置:首页 > 软件开发 > ASP.net > .Net Core集成Office Web Apps(一)

.Net Core集成Office Web Apps(一)

发布时间:2016-08-29 22:00:11
最近开始学习.Net Core,并使用Visual Studio Code工具来开发。感觉开发起来特别的方便,但是有个头疼的地方:许多的类库被修改了,一时半会儿还熟悉不了,需要查阅官方API。。。  Microsoft Office Web Apps(以下简称OWA)是由微软推出 ...

  最近开始学习.Net Core,并使用Visual Studio Code工具来开发。感觉开发起来特别的方便,但是有个头疼的地方:许多的类库被修改了,一时半会儿还熟悉不了,需要查阅官方API。。。

  Microsoft Office Web Apps(以下简称OWA)是由微软推出的基于Web端的在线办公工具,它将Microsoft Office产品的体验延伸到可支持的浏览器上。OWA让你可以在任何地方共享自己的Office文档。

  系统集成OWA需要参考官方的系统接口定义(https://wopi.readthedocs.io/en/latest/),这个接口简称WOPI(Web Application Open Platform Interface)。

下面介绍一个完整的OWA的例子,最终效果如图:

.Net Core集成Office Web Apps(一)

wopi协议的工作流程如下图

.Net Core集成Office Web Apps(一)

 

  我们所要做的就是开发一个OWA客户端,提供文件信息及文件流给OWA服务器,当然也接收从OWA服务POST来的文件流来保存文件,出于安全考虑也可以加上access_token进行自定义权限验证。

  标准的WOPI服务包括:CheckFileInfo、GetFile、Lock、GetLock、RefreshLock、Unlock、UnlockAndRelock、PutFile、PutRelativeFile、RenameFile、DeleteFile、PutUserInfo等

返回状态码定义:

200 OK 成功

400 Bad Request 错误请求

401 Unauthorized 非法 与access_token相关

409 Conflict 冲突 目标文件已经存在或LOCK

413 Request Entity Too Large 文件太大

500 Internal Server Error 内部服务器错误

501 Not Implemented 不支持,如果CheckFileInfo的SupportsUpdate和UserCanNotWriteRelative都设置为true,则必须返回501

OwaFileInfo类

需要定义一个文件信息类,该类的主要属性包括:

属性名

类型

描述

BaseFileName

String

包含扩展的文件名

BreadcrumbFolderName

String

文件夹名称(界面显示)

BreadcrumbDocName

String

文档名称(界面显示)

OwnerId

String

唯一标识文件所有者

Size

Long

文件大小

SHA256

String

SHA-2 256位散列编码值

Version

String

版本编号

SupportsUpdate

Bool

是否支持PUT文件

UserCanWrite

Bool

是否有权限修改

SupportsLocks

Bool

是否支持Lock和Unlock

CloseButtonClosesWindow

Bool

是否显示关闭按钮

更多属性参考API   https://wopirest.readthedocs.io/en/latest/files/CheckFileInfo.html

属性名必须与API中一致才能被OWA服务器识别。

.Net Core集成Office Web Apps(一)

 

.Net Core集成Office Web Apps(一).Net Core集成Office Web Apps(一)
using System;using System.Runtime.Serialization;namespace WebApplication.Models.FileInfoModels{  [DataContract(Name = "OwaFileInfo")]  public class OwaFileInfo  {    public OwaFileInfo()    {      this.SupportsUpdate = false;      this.UserCanWrite = false;      this.SupportsLocks = false;    }    [DataMember(Name = "BaseFileName")]    public get='_blank'>string BaseFileName { get; set; }    [DataMember(Name = "OwnerId")]    public string OwnerId { get; set; }    [DataMember(Name = "Size")]    public long Size { get; set; }    [DataMember(Name = "SHA256")]    public string SHA256 { get; set; }    [DataMember(Name = "Version")]    public string Version { get; set; }    [DataMember(Name = "SupportsUpdate")]    public bool SupportsUpdate { get; set; }    [DataMember(Name = "UserCanWrite")]    public bool UserCanWrite { get; set; }    [DataMember(Name = "SupportsLocks")]    public bool SupportsLocks { get; set; }    [DataMember(Name = "BreadcrumbDocName")]    public string BreadcrumbDocName { get; set; }    [DataMember(Name = "CloseButtonClosesWindow")]    public bool CloseButtonClosesWindow { get; set; }    [DataMember(Name = "BreadcrumbFolderName")]    public string BreadcrumbFolderName { get; set; }  }}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:.Net Core集成Office Web Apps(一)

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。