更新记录

1.0.1(2025-08-30) 下载此版本

增加了上传到云存储的功能

1.0.0(2025-08-17) 下载此版本

1.0.1


平台兼容性

uni-app(4.72)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
√ √ √ √ × × × × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × - × ×

piao-docxtemplate 插件使用说明

🎯 插件简介

piao-docxtemplate 是一个基于 docxtemplater 的 uni-app 插件,用于根据 Word 模板生成 DOCX 文档。

✅ 支持环境

  • H5/Web环境 ✅
  • Electron环境 ✅
  • 小程序环境 ❌ (不支持)
  • App环境 ❌ (不支持)

🔧 安装依赖

npm install pizzip docxtemplater

📱 使用方法

基本使用

import { exportDoc } from '@/uni_modules/piao-docxtemplate/js_sdk/index.js'

exportDoc('/static/docx/template.docx', {
    name: '张三',
    company: '某某律师事务所',
    date: '2024-01-01'
}, '生成的文档.docx', {
    onSuccess: (result) => {
        console.log('文档生成成功:', result)
    },
    onError: (error) => {
        console.error('文档生成失败:', error)
    }
})

云存储上传

const uploadOptions = {
    url: 'https://your-upload-api.com/upload',
    name: 'file',
    formData: {
        type: 'document'
    }
}

exportDoc('/static/docx/template.docx', data, fileName, {
    uploadToCloud: true,
    uploadOptions: uploadOptions,
    onSuccess: (result) => {
        console.log('上传成功:', result)
    },
    onError: (error) => {
        console.error('上传失败:', error)
    }
})

📋 参数说明

exportDoc(templateName, data, fileName, options)

参数 类型 必填 说明
templateName String ✅ 模板文件路径
data Object ✅ 要填充的数据
fileName String ✅ 生成的文件名
options Object ❌ 可选配置

options 配置项

属性 类型 默认值 说明
uploadToCloud Boolean false 是否上传到云存储
uploadOptions Object null uni.uploadFile 的上传参数
onProgress Function null 上传进度回调(H5和App环境都支持)
onSuccess Function null 成功回调
onError Function null 错误回调

🚀 功能特性

1. 文档生成

  • 支持复杂的 Word 模板
  • 自动填充数据
  • 生成标准 DOCX 格式

2. 文件保存

  • H5/Web环境: 自动下载到本地
  • Electron环境: 发送到主进程保存

3. 云存储上传

  • 支持任意云存储服务
  • 使用 uni.uploadFile API
  • 支持上传进度监听(H5和App环境)
  • 自动清理临时文件

📁 文件结构

piao-docxtemplate/
├── js_sdk/
│   └── index.js          # 主文件
├── components/            # 组件文件
├── package.json          # 包配置
└── README.md            # 说明文档

🔍 环境检测

import { exportDoc } from '@/uni_modules/piao-docxtemplate/js_sdk/index.js'

// 检测是否为Electron环境
function isElectron() {
    return !!(typeof window !== 'undefined' && (window.electron || window.ipcRenderer));
}

if (isElectron()) {
    console.log('当前运行在Electron环境')
} else {
    console.log('当前运行在H5/Web环境')
}

⚠️ 注意事项

1. 模板文件

  • 模板文件必须放在 static 目录下
  • 支持相对路径和绝对路径
  • 文件格式必须是 .docx

2. 数据格式

  • 数据对象中的键名必须与模板中的变量名一致
  • 支持嵌套对象和数组
  • 支持条件判断和循环

3. 环境限制

  • H5/Web环境支持上传进度监听
  • 小程序和App环境不支持
  • 需要现代浏览器支持(支持fetch API)

🔧 错误处理

常见错误

  1. 模板文件读取失败

    • 检查文件路径是否正确
    • 确保文件存在于static目录
  2. 数据渲染失败

    • 检查数据格式是否正确
    • 确保模板变量名与数据键名一致
  3. 文件保存失败

    • H5环境:检查浏览器下载设置
    • Electron环境:检查主进程IPC配置

错误回调示例

exportDoc(templateName, data, fileName, {
    onError: (error) => {
        console.error('详细错误信息:', error)

        // 显示用户友好的错误提示
        uni.showToast({
            title: '文档生成失败',
            icon: 'none'
        })
    }
})

📞 技术支持

如果遇到问题,请提供:

  1. 错误日志: 控制台的完整错误信息
  2. 环境信息: 运行环境(H5/Web/Electron)
  3. 复现步骤: 详细的操作步骤
  4. 模板文件: 使用的模板文件(如果可能)

🎉 总结

piao-docxtemplate 插件现在专注于 H5、Web 和 Electron 环境,代码更清晰,功能更稳定。如果您需要其他环境的支持,请考虑使用其他解决方案。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议