更新记录

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协议

暂无用户评论。