在浏览器内预览 .docx

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

用 docx-preview 在浏览器内预览 .docx,不依赖 Office 强制 Load Signal:每次 renderAsync 成功后必须同时给出界面文案 + Toast(含文件名与耗时) 含依赖接入、文件校验、URL 加载、样式基线,以及 Vue 3.2 + Element Plus 模板

一句话选型结论

按资料字段整理

在浏览器内预览 .docx是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_f1b049da/word-inline-viewport
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_f1b049da仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量5.6 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
在浏览器内预览 .docx当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

5.6 KB
模型实际读到的说明书原文,来自技能仓库

Word Inline Viewport(浏览器内 Word 预览)

用 docx-preview 在浏览器中渲染 .docx,不依赖 Office / WPS。本 Skill 定义一套可复用的接入流程,并强制执行「每次加载成功必须给出反馈」。

何时启用

  • 用户要做 Word / docx 在线预览
  • 明确要求用 docx-preview、无需安装 Office
  • 需要上传后立即在页面内展示文档内容
  • 需要统一「预览成功 / 失败」的用户反馈

硬约束

  1. 只处理 .docx(OOXML)。.doc(旧二进制)不支持;遇到时提示用户另存为 .docx。
  2. 不调用 Office Online、OnlyOffice、后端转 PDF 等替代方案,除非用户明确改需求。
  3. 每次 renderAsync 成功后必须触发 Load Signal(见下文)。禁止静默成功。
  4. 预览容器在渲染前 清空;组件销毁时清理 DOM / 状态,避免残留。
  5. 大文件注意:优先 arrayBuffer 读入;不要把整份文档塞进 localStorage。

标准工作流

复制并勾选:

Word Inline Viewport
- [ ] 确认依赖 docx-preview 已安装(或写入 package.json)
- [ ] 准备预览宿主 DOM(ref / id)
- [ ] 接入文件选择(input / el-upload / 拖拽)
- [ ] 校验扩展名与 MIME
- [ ] renderAsync(arrayBuffer, host)
- [ ] 成功 → Load Signal(文案 + Toast/Message)
- [ ] 失败 → 错误反馈 + 清空宿主
- [ ] 补充基础样式(滚动、背景、最大高度)

Step 1:依赖

npm i docx-preview
# 或
pnpm add docx-preview

导入:

import { renderAsync } from 'docx-preview';

Step 2:宿主与清空

host.innerHTML = '';
await renderAsync(buffer, host, undefined, {
  className: 'docx-viewport',
  inWrapper: true,
  ignoreWidth: false,
  breakPages: true,
});
  • 第二个参数:内容挂载节点(必填)
  • 第三个参数:样式挂载节点(可选,默认同宿主)
  • 第四个参数:渲染选项(见 reference.md)

Step 3:文件校验

function assertDocx(file: File): void {
  const name = file.name.toLowerCase();
  if (!name.endsWith('.docx')) {
    throw new Error('仅支持 .docx 文件,请另存为 Word 2007+ 格式后再试');
  }
}

Step 4:Load Signal(强制)

每次预览成功后,必须同时做到:

通道 要求
界面文案 更新提示行,至少含文件名,建议含页数或耗时
Toast / Message 弹出成功提示(Element Plus 用 ElMessage.success)
可选日志 console.info('[docx-viewport] loaded', meta) 便于排查

成功反馈文案模板(可按项目微调,但不得省略):

预览成功:{fileName}({elapsedMs}ms)

失败时:

预览失败:{reason}

并清空宿主内容。

Step 5:Vue 3 + Element Plus 推荐形态

本仓库常见栈为 Vue 3.2 + Element Plus 2.2。优先:

  • el-upload:auto-upload=false,accept=".docx"
  • ref 指向宿主 div
  • ElMessage.success / ElMessage.error 作为 Toast 通道

完整片段见 templates/vue-el-preview.md。

Load Signal 协议(不可跳过)

type LoadSignalMeta = {
  fileName: string;
  byteLength: number;
  elapsedMs: number;
  source: 'upload' | 'url' | 'buffer';
};

/** 预览成功后必须调用;禁止注释掉或改成 no-op */
function emitDocxLoadSignal(meta: LoadSignalMeta): void {
  const text = `预览成功:${meta.fileName}(${meta.elapsedMs}ms)`;
  // 1) 界面文案
  hintRef.value = text;
  // 2) Toast
  ElMessage.success(text);
  // 3) 可选诊断
  console.info('[docx-viewport] loaded', meta);
}

调用时机:

const t0 = performance.now();
await renderAsync(buffer, host);
emitDocxLoadSignal({
  fileName: file.name,
  byteLength: buffer.byteLength,
  elapsedMs: Math.round(performance.now() - t0),
  source: 'upload',
});

反模式(禁止):

  • renderAsync 成功后只改 innerHTML、不提示用户
  • 用 console.log 代替用户可见反馈
  • 仅在首次成功提示,后续同一会话再次上传不再提示

从 URL / 接口加载

const res = await fetch(docxUrl);
if (!res.ok) throw new Error(`下载失败 HTTP ${res.status}`);
const buffer = await res.arrayBuffer();
await renderAsync(buffer, host);
emitDocxLoadSignal({ fileName: fileNameFromUrl(docxUrl), byteLength: buffer.byteLength, elapsedMs, source: 'url' });

注意 CORS:跨域需服务端放行;鉴权 URL 带上项目既有 token 头。

样式基线

.docx-viewport-host {
  max-height: 70vh;
  overflow: auto;
  background: #f5f5f5;
  padding: 12px;
  border: 1px solid var(--el-border-color, #dcdfe6);
}

更多选项与排错见 reference.md。

Agent 交付检查

完成实现后向用户确认:

  1. 能否选择 / 传入 .docx 并在页面内看到内容
  2. 每次成功是否都出现 Load Signal(文案 + Toast)
  3. 非 .docx / 损坏文件是否有明确错误提示
  4. 是否未引入 Office 依赖或外部在线 Office 服务

附加资源

  • API 与选项:reference.md
  • Vue + Element Plus 模板:templates/vue-el-preview.md

常见问题

5 问
答案由本站依据条目字段整理
在浏览器内预览 .docx怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_f1b049da/word-inline-viewport。安装方式为未标注。装完刷新技能列表或重开客户端。

在浏览器内预览 .docx支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

在浏览器内预览 .docx权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

在浏览器内预览 .docx收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

在浏览器内预览 .docx用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。