试试 docx.js 一键生成 Word 文档,效果很不错
前端经常有需求希望把合同、报告等内容导出内容为 Word 文档的 .docx 文件挺常见的之前踩过坑。以前很多情况是在服务端去生成好文档前端下载最近发现一个叫docx.js的开源项目它很简单让程序员用写代码的方式高效地生成 Word 文档。项目介绍docx 是一个 TypeScript/JavaScript 库用于以编程方式生成 Word 文档.docx 文件。它提供了一个声明式 API可以在 Node.js 和浏览器环境中无缝工作。官方网址https://docx.js.org/Github 仓库https://github.com/dolanmiu/docx它解决了什么简单来说它让开发者可以在前端或者服务端直接使用 TypeScript/JavaScript 将内容生成一份 Word 文档导出使用简单效果又好。它支持声明式 API你不需要理解 Word 底层那些复杂的 XML 结构只需要告诉它“我要一个标题、一段正文、一个表格”它就能帮你生成完整的 .docx 文件。一份代码多端运行支持在 Node.js 后端、前端浏览器或部署到 Serverless 环境使用。零外部依赖这个库不依赖任何第三方运行时打出来的包很干净不用担心引入奇怪的冲突问题。功能齐全标题、段落、加粗斜体、图片、表格、项目符号、页眉页脚、页码、目录、脚注尾注甚至水印和修订模式这些办公场景常见的需求都覆盖到了。还有就是项目用了TypeScript开发提供了完整的类型提示写代码时 IDE 能给你智能提示减少出错的概率。快速上手作为一个成熟的开源项目docx.js 的上手体验做得很顺滑。安装只需要一行命令npm install --save docx创建一个简单的文档只需要几行代码import { Document, Packer, Paragraph, TextRun } from docx; import * as fs from fs; const doc new Document({ sections: [ { children: [ new Paragraph({ children: [new TextRun(Hello World!)], }), ], }, ], }); Packer.toBuffer(doc).then((buffer) { fs.writeFileSync(My Document.docx, buffer); });它的官方文档还提供了一个交互式的 Playground让你可以直接在网页上写代码、实时预览效果省去了反复安装调试的麻烦。Playground 地址https://docxjs-editor.vercel.app/playground/示例演示项目同时支持 Node 和浏览器环境官方也提供了 React、Vue、Angular 等主流框架的使用示例1.浏览器端示例浏览器环境中使用基本 HTML/JS 示例https://codepen.io/dolanmiu/pen/RwNeObghttps://jsfiddle.net/dolanmiu/onadx1gu/React 使用示例https://stackblitz.com/edit/react-docxhttps://stackblitz.com/edit/react-docx-images 向 Word 文档添加图片Vue.js 使用示例以下是 docx 在 Vue.js 中的应用示例https://stackblitz.com/edit/vuejs-docx[8]2.Node.js 示例https://runkit.com/dolanmiu/docx-demo1 - 简单的段落和文本https://runkit.com/dolanmiu/docx-demo2 - 高级段落和文本https://runkit.com/dolanmiu/docx-demo3 - 要点https://runkit.com/dolanmiu/docx-demo4 - 简单表格https://runkit.com/dolanmiu/docx-demo5 - 图片https://runkit.com/dolanmiu/docx-demo6 - 边距https://runkit.com/dolanmiu/docx-demo7 - 风景https://runkit.com/dolanmiu/docx-demo8 - 页眉和页脚https://runkit.com/dolanmiu/docx-demo10 - 我的简历是用 docx 生成的生态与社区这个项目在 GitHub 上已经收获了超过 5600 颗星被 13000 多个项目使用133 位开发者参与过贡献版本迭代也非常活跃最近一次更新就在几天前。小结一下很多时候我们不写文档自动化脚本不是因为没需求而是因为现有的方案要么门槛太高、要么坑太多。docx.js 的核心价值就是把这道门槛降到最低了。它让你可以把精力花在业务逻辑上而不是研究怎么调用 COM 接口、怎么处理编码问题。如果你的项目需要生成 Word 文档无论是合同模板、报表导出还是简历生成可以去试试这个项目。