vue3 使用docxtemplater 动态生成docx

模版文件docx放到vue工程public下

文件内容

vue文件

html 复制代码
<template>
  <div>
    <button @click="generateDocument">生成Word文档</button>
  </div>
</template>

<script>
import PizZip from 'pizzip';
import Docxtemplater from 'docxtemplater';
import { saveAs } from 'file-saver';
import PizZipUtils from 'pizzip/utils/index.js';

function loadFile(url, callback) {
  PizZipUtils.getBinaryContent(url, callback);
}

export default {
  methods: {
    generateDocument() {
      // 假设你的模板文件位于 public 文件夹下
      const templatePath = '/docx/tepmlate/testtemplate2.docx'; // 替换为你的模板路径
      
      loadFile(templatePath, (error, content) => {
        if (error) throw error;

        const zip = new PizZip(content);
        const doc = new Docxtemplater(zip, {
          paragraphLoop: true,
          linebreaks: true,
        });

        // 渲染文档,替换占位符
        doc.render({
          first_name: 'John'
        });

        // 生成Blob文件
        const blob = doc.getZip().generate({ type: 'blob' });
        // 下载文件
        saveAs(blob, 'output.docx');
      });
    }
  }
}
</script>

相关推荐
hoLzwEge2 分钟前
团队协作的隐藏利器:.vscode 完全指南
前端·前端框架
labixiong4 分钟前
TypeScript 7.0 编译器用 Go 重写,速度暴增10倍——背后到底做了什么?
前端·javascript·go
WaywardOne6 分钟前
Flutter组件化方案(AI总结)
前端·flutter·ai编程
玉宇夕落7 分钟前
原子化编程”:Tailwind CSS 核心原理
前端
是小李呀11 分钟前
解决“Error: The project seems to require yarn but it‘s not installed”报错
前端
weedsfly13 分钟前
一个电商价格计算案例,带你学会前端开发中的责任链模式
前端·javascript·面试
__sjfzllv___13 分钟前
在职前端Leader学习/转行 AI Agent -DAY10
前端
沉迷学习日益消瘦17 分钟前
8 UI 组件库与设计系统:Token 驱动 + 暗色模式 + 4 种主题色
前端
CodeSheep33 分钟前
有这4个迹象,你就该离职了!
前端·后端·程序员
用户0595401744633 分钟前
把大模型记忆回归测试从手工检查换成 Playwright+VCR,误判率从 40% 降到 0
前端·css