news 2026/11/2 15:00:33

Vue文档编辑器(Word默认功能)示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue文档编辑器(Word默认功能)示例

Spire.WordJS 基于 HTML5 标准,支持跨平台开发和集成,支持所有主流浏览器,无需安装任何插件或第三方组件,以原生的方式嵌入各类应用,可以与各类前端技术框架Vue、React、Angular 等相结合。 Spire.WordJS以纯前端、跨平台的能力,让您的应用系统轻松获得与Word,WPS文档一致的交互体验。

此示例为您完整演示Vue框架中如何使用Spire.WordJS文档编辑器创建、编辑并打印 Word 格式(DOCX)的文档:

<template> <div class="form"> <div id="iframeEditor"> </div> </div> </template> <script setup> import { ref, onMounted, onUnmounted } from 'vue'; import { storeToRefs } from 'pinia'; import { useFileStore } from '../stores/file.js' import { useRouter } from 'vue-router'; const fileStore = useFileStore() // Pinia 中当存储的数据 const { file, fileUint8Data } = storeToRefs(fileStore) const router = useRouter() const config = ref({}); const isOpened = ref(false); const editorInstance = ref(null); const apiInstance = ref(null); const originUrl = window.location.origin onMounted(() => { // 没有文件时直接跳回上传页 if (!file.value) { router.replace('/'); return; } // 使用script的方式载入 loadScript(); window.addEventListener('resize', OnWindowReSize); }) onUnmounted(() => { window.removeEventListener('resize', OnWindowReSize); }) // 初始化编辑器所需的配置对象 function initConfig() { if (!file.value) { throw new Error('未找到文件,请重新上传'); } if (!fileUint8Data.value) { throw new Error('未找到文件数据,请重新上传'); } config.value = { "fileAttrs": { "fileInfo": { "name": file.value.name, "ext": getFileExtension(), "primary": String(new Date().getTime()), "creator": "Jonn", "createTime": "2022-04-18 11:30:43" }, "sourceUrl": originUrl + "/files/__ffff_192.168.2.134/" + file.value.name, "createUrl": originUrl + "/open", "mergeFolderUrl": "", "fileChoiceUrl": "", "templates": {} }, "user": { "id": "uid-1", "name": "Jonn", "canSave": true, }, "editorAttrs": { "editorMode": "edit", //edit / view "editorWidth": "100%", "editorHeight": "100%", "editorType": "document", "platform": "desktop", //desktop / mobile / embedded "viewLanguage": "zh", //en / zh "isReadOnly": false, "canChat": true, "canComment": true, "canReview": true, "canDownload": true, "canEdit": true, "canForcesave": true, "embedded": { "saveUrl": "", "embedUrl": "", "shareUrl": "", "toolbarDocked": "top" }, "useWebAssemblyDoc": true, "useWebAssemblyExcel": true, "useWebAssemblyPpt": true, "spireDocJsLicense": "", "spireXlsJsLicense": "", "spirePresentationJsLicense": "", "spirePdfJsLicense": "", "serverless": { "useServerless": true, "baseUrl": originUrl, "fileData": fileUint8Data.value, }, "events": { "onSave": onFileSave }, "plugins": { "pluginsData": [] } } }; } // 创建并渲染 SpireCloudEditor 实例 function initEditor() { let iframeId = 'iframeEditor'; initConfig(); isOpened.value = true; editorInstance.value = new SpireCloudEditor.OpenApi(iframeId, config.value); // 创建编辑器实例 window.Api = apiInstance.value = editorInstance.value.GetOpenApi(); // 暴露 OpenApi 便于调试/保存 OnWindowReSize(); } // 获取上传文件的扩展名,用于配置 fileInfo.ext function getFileExtension() { const filename = file.value.name.split(/[\\/]/).pop(); // 获取最后一个点后的内容 return filename.substring(filename.lastIndexOf('.') + 1).toLowerCase() || ''; } // 调整编辑器容器尺寸,使其随窗口大小自适应 function OnWindowReSize() { let wrapEl = document.getElementsByClassName("form"); if (wrapEl.length) { wrapEl[0].style.height = screen.availHeight + "px"; window.scrollTo(0, -1); wrapEl[0].style.height = window.innerHeight + "px"; } } // 动态加载 SpireCloudEditor 脚本,避免重复注入 function loadScript() { if (window.SpireCloudEditor) { initEditor() return } const script = document.createElement('script'); script.setAttribute('src', '/spire.cloud/web/editors/spireapi/SpireCloudEditor.js'); script.onload = () => initEditor() document.head.appendChild(script); } // Spire 编辑器的保存回调,可接入自定义保存逻辑 function onFileSave(data) { console.log('save data', data) } </script> <style> .form, iframe, body { min-height: 100vh !important; min-width: 100vh !important; } </style>

Spire.WordJS文档编辑器界面选项清晰易懂,遵循Microsoft Word 和WPS通用规则,您可以快速在线完成 Word 文档的创建, 编辑, 打印及保存等。Spire.WordJS的每个独立功能均设为独立模块,可协助您搭建满足自身需求的轻量 Word 编辑工具。

Spire.WordJS文档编辑器核心功能:

  • 创建与编辑:打开和保存文档。
  • 支持的文档格式:.doc, .docx, .wps, .wpt, .docm, .dotm 等
  • 支持元素:文本、图片、超链接、表格、书签、页码、目录、页眉页脚等。
  • 格式设置:文本层级、段落层级、项目符号与编号、表格层级、页面设置及样式。
  • 编辑操作:撤销、重做、剪切、复制、粘贴。
  • 文档内文本查找替换。

如需要更多详细资料,请留言

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/1 21:57:48

YOLOv13镜像常见问题解答,新手少走弯路

YOLOv13镜像常见问题解答&#xff0c;新手少走弯路 刚拿到YOLOv13官版镜像&#xff0c;打开终端却卡在conda activate命令&#xff1f;运行预测脚本时提示“找不到yolov13n.pt”&#xff1f;训练报错说CUDA不可用&#xff0c;但nvidia-smi明明显示显卡正常&#xff1f;别急——…

作者头像 李华
网站建设 2026/11/2 12:18:32

Hunyuan MT1.5-1.8B参数详解:小模型实现高质量翻译的秘密

Hunyuan MT1.5-1.8B参数详解&#xff1a;小模型实现高质量翻译的秘密 你有没有遇到过这样的情况&#xff1a;想在本地跑一个翻译模型&#xff0c;但7B大模型动辄要24G显存&#xff0c;连3090都带不动&#xff1b;换成开源小模型&#xff0c;翻译又生硬拗口&#xff0c;专有名词…

作者头像 李华
网站建设 2026/11/2 8:04:25

DeepChat深度对话引擎实战:用Llama3打造你的私人AI聊天室

DeepChat深度对话引擎实战&#xff1a;用Llama3打造你的私人AI聊天室 在本地部署一个真正属于自己的AI聊天室&#xff0c;听起来像科幻小说里的场景&#xff1f;其实它已经触手可及——不需要GPU服务器、不依赖云API、不上传任何一句话到外部网络。你只需要一台普通笔记本&…

作者头像 李华
网站建设 2026/11/2 8:04:25

[特殊字符] GLM-4V-9B效果展示:高清图片内容描述生成惊艳案例

GLM-4V-9B效果展示&#xff1a;高清图片内容描述生成惊艳案例 1. 模型能力概览 GLM-4V-9B是一款强大的多模态大模型&#xff0c;专门用于理解和描述图片内容。经过优化后&#xff0c;现在可以在普通显卡上流畅运行&#xff0c;让更多人能体验到它的强大能力。 这个模型最厉害…

作者头像 李华
网站建设 2026/11/2 8:04:25

CosyVoice-300M Lite快速部署:10分钟搭建可生产TTS服务

CosyVoice-300M Lite快速部署&#xff1a;10分钟搭建可生产TTS服务 1. 为什么你需要一个轻量又靠谱的TTS服务&#xff1f; 你有没有遇到过这些场景&#xff1f; 想给内部知识库加语音播报&#xff0c;但部署一个大模型动辄要GPU、20GB显存&#xff0c;成本太高&#xff1b;做…

作者头像 李华
网站建设 2026/11/2 8:04:25

YOLOv8与YOLOX对比评测:Anchor-Free架构性能差异分析

YOLOv8与YOLOX对比评测&#xff1a;Anchor-Free架构性能差异分析 1. 鹰眼目标检测&#xff1a;YOLOv8工业级实战表现 YOLOv8不是简单的版本迭代&#xff0c;而是Ultralytics团队对Anchor-Free目标检测范式的一次系统性重构。它跳出了传统YOLO系列依赖预设锚框&#xff08;anc…

作者头像 李华