vue 项目使用@vue-office/docx word 纯前端v 也支持后端接口方式

news/2024/11/18 21:44:56/文章来源:https://www.cnblogs.com/youguo2/p/18348929

只是做个记录,防止忘记。

安装依赖 @vue-office/docx

vue 2 的写法 vue3 同理自己改造。

记得一定放在public 文件夹下

 

下面代码

<template>
  <div style="height: 100%">
    <el-button type="primary" @click="downWord">下载文档</el-button>
    <vue-office-docx
      :src="docx"
      style="height: 100%; overflow-y: auto"
      @rendered="renderedHandler"
      @error="errorHandler"
    />
  </div>
</template>

<script>
//引入VueOfficeDocx组件
import VueOfficeDocx from "@vue-office/docx";
import axios from "axios";
//引入相关样式
// import '@vue-office/docx/lib/index.css'

export default {
  components: {
    VueOfficeDocx,
  },
  data() {
    return {
      // docx: 'http://static.shanhuxueyuan.com/test6.docx' ,//设置文档网络地址,可以是相对地址
      docx: `${"/ps"}.docx`, //设置文档网络地址,可以是相对地址
    };
  },
  methods: {
    renderedHandler() {
      console.log("渲染完成");
    },
    errorHandler(res) {
      console.log("渲染失败", res);
    },
    downWord() {
      axios({
        method: "get",
        responseType: "blob",
        url: `${"/ps"}.docx`, // word在static文件下
      }).then((res) => {
        this.exportWord(res, "word文件");
       
      });
    },
    exportWord(res, name) {
      const blob = new Blob([res.data]);
      const fileName = name + ".docx";
      const elink = document.createElement("a");
      elink.download = fileName;
      elink.style.display = "none";
      elink.href = URL.createObjectURL(blob);
      document.body.appendChild(elink);
      elink.click();
      URL.revokeObjectURL(elink.href); // 释放URL 对象
      document.body.removeChild(elink);
    },
  },
};
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/779745.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode: 1484. Groups Sold Products By The Date

题目要求如下:输入的数据为要求按照日期查询出每日销售数量及相应产品的名称,并按照字符顺序进行排序。 下面是实现的代码: import pandas as pddef categorize_products(activities: pd.DataFrame) -> pd.DataFrame:val = activities.drop_duplicates().groupby("sell…

扫码点餐系统功能案例

一、基本功能展示 1.用户注册与登录: 用户首次使用扫码点餐系统时,可以通过注册账号并登录,以便享受系统的个性化服务和订单管理功能。例如,广力云点餐系统就支持用户注册与登录,用户完成注册后可以使用小程序的所有功能(来源:收款码代理)。 2.菜单浏览与选择: 系统将…

数组排序算法

4.2 数组排序算法 4.2.1 冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由…

vue前端自适应布局,一步到位所有自适应

1,左右布局- 左侧固定宽带,右侧自适应剩余的宽度。 - 中间一条分割线,可以拖拉,自适应调整左右侧的宽度。 - 左侧的高度超长自动出现横向滚动条,左侧宽度超长,自动出现竖向滚动条。2,上中下布局- 最上面的 搜索条件 div 固定占用 100 px 高度,下面的 查询条件 div 固定…

IgniteFAQ-11-ignite嵌入式模式下如何使用命令行

java -cp {libs目录} sqlline.SqlLine --verbose=true -u jdbc:ignite:thin://127.0.0.1:10800 其中cp是包含ignite核心jar包和sqlline相关的包 本文来自博客园,作者:life_start,转载请注明原文链接:https://www.cnblogs.com/yangh2016/p/18348781

京东小程序数据中心架构设计与最佳实践

一、京东小程序是什么京东小程序平台能够提供开放、安全的产品,成为品牌开发者链接京东内部核心产品的桥梁,致力于服务每一个信任我们的外部开发者,为不同开发能力的品牌商家提供合适的服务和产品,让技术开放成为品牌的新机会。“Once Build, Run Anywhere”,一个小程序可…

IgniteFAQ-6-Ignite 通过zk组网时集群组网失败

zk组网类 ZookeeperDiscoverySpi zkDiscoverySpi = new ZookeeperDiscoverySpi();cfg.setDiscoverySpi(zkDiscoverySpi);配置示例: # ignite 集群租房方式,配置 zk 为,zk 集群组网方式 fc.mybatis.ignite.discovery=zk # Ignite zk 集群组网方式 ignite.discoverySpi.zkConn…

AI入门之深度学习:基本概念篇

1、什么是深度学习 1.1、机器学习图1:计算机有效工作的常用方法:程序员编写规则(程序),计算机遵循这些规则将输入数据转换为适当的答案。这一方法被称为符号主义人工智能,适合用来解决定义明确的逻辑问题,比如早期的PC小游戏:五子棋等,但是像图像分类、语音识别或自然…

前后端分离项目,后期前端身份验证的麻烦

软件构成后端 后端是一个asp.netcore webapi项目,使用jwt进行身份验证和鉴权。 前端 前端是一个基于http协议的asp.netcore RezorPage项目,但实际上完全使用的wwwwroot目录下的静态文件。没有使用RazorPage。目前只有后端接口鉴权,前端页面任意访问 身份验证需求 这两天安全…

IgniteFAQ-2-CacheWriterException: Failed to write entries in database

ignite同步或者异步落库数据到DB时,如果因为落库的数据不满足db库的要求,如长度、精度、nonull等限制,就会出现落库失败报Failed to write entries in database错误。 ignite异步落库默认时5秒或者10240条flush一次,失败的数据会不断尝试,当存在一条数据以为数据库要求失败…

Leetcode: 586. Customer Placing the Largest Number of Orders

题目要求如下:给出的例子如下:简单地说就是要找出表中订单最多客户的ID。 使用如下的代码进行实现: import pandas as pddef largest_orders(orders: pd.DataFrame) -> pd.DataFrame:return orders.groupby("customer_number").count().reset_index().nlargest(1,…

攻防世界CTF web方向

入门题鉴赏 disabled_button https://adworld.xctf.org.cn/challenges/list 解决思路:因为说的是前端的button坏掉了,于是我们用查看器查看他的页面源代码,发现有个disabled,就是不能的意思将 disabled 删掉即可! 总结:前端JS代码查看修改weak_auth https://adworld.xctf…