npm install --save @officesdk/web
yarn add @officesdk/web
<script src="https://unpkg.com/@officesdk/web@^1/umd/index.js"></script>
import { createSDK } from '@officesdk/web'
async function loadSDK() {
// 获取 sdk 实例
const sdk = createSDK({
endpoint: 'https://office-sdk-endpoint/'
path: '文件path,可选',
token: '识别用户请求的 token',
fileId: '系统中的 file id',
fileType: FileType.Document,
root: document.getElementById('sdk'),
lang: 'en-US' // 未指定此参数时使用默认中文
userQuery: { // 自定义参数,用于服务器回调参数
userName: 'John Doe',
userId: '1234',
},
settings: { // 初始化设置
menu: { // 工具栏菜单
custom: [
{ type: 'link', url: 'https://www.baidu.com', text: '测试1', name: 'test1' },
{
name: 'test',
type: 'button',
label: '按钮测试',
callback: (): void => {
console.log('按钮测试');
},
},
],
},
},
});
// 获取编辑器实例
const document = await sdk.connect();
// 调用编辑器相关方案
document.getSelection()
...
}
必要参数 | 是否必须 | 类型 | 说明 |
---|---|---|---|
endpoint | 是 | string | 提供服务访问的域名地址 |
token | 是 | string | 用户凭证,由接入方服务端提供 |
fileId | 是 | string | 文档 ID,用户自定义 |
fileType | 是 | FileType | 文件的类型,请根据 fileId 对应的文件的实际类型设置,详见下表 |
mode | 否 | string | 编辑器模式,当前仅支持设置为 standard |
role | 否 | string | 编辑器在 standard 模式下的权限模式,仅支持设置为 editor, viewer。"editor" - 编辑模式;"viewer" - 预览模式;未指定此参数时默认为 viewer |
lang | 否 | string | 系统语言;仅支持设置为 zh-CN, en-US;未指定此参数时,使用浏览器默认语言(若浏览器默认语言系统不支持,则使用 zh-CN) |
root | 否 | HTMLElement | 加载 SDK iframe 的根节点。也可以在创建实例后再将 sdk.iframe 加载到页面任意位置 |
setting | 否 | { menu?: { custom?: EditorMenuCustomButton[] } } | 加载sdk的自定义设置,比如自定义工具栏。参见下文 EditorMenuCustomButton 类型 |
文件类型 | 值 | 文件格式 |
---|---|---|
Document | 0 | .doc, .docx, .wps |
Spreadsheet | 1 | .xls, .xlsx, .csv, .xlsm |
Presentation | 2 | .ppt, .pptx |
5 |
type EditorMenuCustomButton = {
/**
* 按钮名称
*/
name: string;
/**
* 链接
*/
type: 'link';
/**
* 按钮文本
*/
text: string;
/**
* 链接地址
*/
url: string;
} | {
/**
* 按钮名称
*/
name: string;
/**
* 按钮,点击后触发 callback 回调
*/
type: 'button';
/**
* 按钮文本
*/
label: string;
/**
* 按钮图标,可以是 base64 的图片信息,也可以是图片 url
*/
icon?: string;
/**
* 按钮点击事件
*/
callback: () => void;
};