• Vue+elementUI 导出word打印


    import JSZipUtils from "jszip-utils";
    import JSZip from "pizzip";
    import Docxtemplater from "docxtemplater";

    npm安装以上依赖

    首先维护个word模板

    导出方法

    1. //导出word
    2. skipOutWord(row) {
    3. var printData = row
    4. const data = JSON.parse(JSON.stringify(printData))
    5. data.timeYear = data.startTime.toString().split("-")[0]
    6. data.startTime = data.startTime.toString().split("-")[0]+'年'+data.startTime.toString().split("-")[1]+'月'
    7. data.endTime = data.endTime.toString().split("-")[0]+'年'+data.endTime.toString().split("-")[1]+'月'
    8. //set打印日期
    9. JSZipUtils.getBinaryContent('/template/projectApplication.docx', function (error, content) {
    10. // 抛出异常
    11. if (error) {
    12. throw error
    13. }
    14. // 创建一个JSZip实例,内容为模板的内容
    15. const zip = new JSZip(content)
    16. // 创建并加载docxtemplater实例对象
    17. const doc = new Docxtemplater().loadZip(zip)
    18. // 设置模板变量的值
    19. doc.setData({
    20. ...data,
    21. })
    22. try {
    23. // 用模板变量的值替换所有模板变量
    24. doc.render()
    25. } catch (error) {
    26. // 抛出异常
    27. // let e = {
    28. // message: error.message,
    29. // name: error.name,
    30. // stack: error.stack,
    31. // properties: error.properties,
    32. // }
    33. this.$message.error('导出失败')
    34. throw error
    35. }
    36. // 生成一个代表docxtemplater对象的zip文件(不是一个真实的文件,而是在内存中的表示)
    37. const out = doc.getZip().generate({
    38. type: 'blob',
    39. mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
    40. })
    41. // 将目标文件对象保存为目标类型的文件,并命名
    42. saveAs(out, '汕头公司'+printData.startTime.toString().split('-')[0] + '年职工(青年)创新创效立项申报表.docx')
    43. })
    44. },

  • 相关阅读:
    python pip3 安装psycopg2报错
    【锂离子电池】
    java中的try-with-resource语法
    深入了解5米DEM:地表高程的数字呈现与广泛应用
    C++ 三大特性之多态(一)
    [附源码]java毕业设计农村留守儿童帮扶系统
    node---模块
    numpy用savez_compressed压缩数据
    图片大小转换(对于图片进行压缩)
    Slim-neck by GSConv:自动驾驶车辆检测器架构的更好设计范式(文末附代码)
  • 原文地址:https://blog.csdn.net/huichao199175/article/details/132695250