1.1.1 • Published 2 years ago
easy-word v1.1.1
introduce
简单、快捷、方便地导出Word文档
这是一个依赖docx来实现的word文档的导出,现在已经支持表单、图形风格的导出,如果你不满足这些基本的风格,建议你去用docx定制开发来满足自己的风格。
安装/入门
npm i easy-word
npm i docx@6.0.3
特别注意
项目依赖于docx, 同时你需要把你数据数组的图片全部转为base64并且封装在imgList参数里面, 同时把数据封装成统一格式才可以正确的识别.
import { outGraphic } from 'easy-word' // 图文方法
import { outTable } from 'easy-word' // 表格方法
import { Packer } from 'docx'
import { urlToBase64 } from 'easy-word' // 图片转base64方法 你也可以自己去封装
<!-- outGraphic(row, word) -->
// 参数说明
* @param {number} row 几行文字 max 10
* @param {Array} data 数字数组 [{ 0 : val }]
// 比如我希望导出一个图文格式
{
title: '',
name: '',
content: '',
imgList: []
}
data = [{ 0: '标题', 1: '名字', 2: '内容', imgList: [] } ... ]
row = data[0].length - 1 = 3
<!-- 表格方法 -->
outTable(caption, row, data)
@param {Array} caption 字符串数组 ['value1', 'value2'] 长度必等于 row - 1
@param {number} row 几行表格 max = 10
@param {Array} data key为数字value 为值的 数组 [{ 0: 'value', 1: 'vlaue' ... imgList: [] }]
大家可以把caption理解成表头,data 为表数据,
如表头为['班级', '姓名', '标题', '时间']
data 就为 [{ 0: '大一班', 1: '拉拉', 2: '标题内容', 3: '2022-5-11', imgList: ['base64...x'] }]
row = caption.length + 1 = 5
数据保持这样传入就可以得到正确的返回了
const doc:any = await outGraphic(row, word)
Packer.toBlob(doc).then(blob => {
saveAs(blob, '图文文档.docx')
console.log('开始保存')
}).finally(() => {
console.log('导出成功')
})
导出样式展示
发展
开发目的也是为了练习npm包制作流程和对docx文档导出的方法记录.后续可能会断断续续记录 word文档的导出模板样式.目前先测试测试,后续支持文字颜色字体,边框的diy,现在还没有写参数...
特性
这个项目能做什么呢?
- word文档的导出
- 支持图文wrod导出
- 支持基础表格导出