Word文档-实现在线浏览


前言

提示:这里可以添加本文要记录的大概内容:

实现Word在线浏览功能,不下载,但我认为本质还是下载,只不过不下载到本地电脑了。


提示:以下是本篇文章正文内容,下面案例可供参考

一、package.json

"dependencies": {
	 "@vue-office/docx": "^1.6.3",
	 "@vue/composition-api": "^1.7.2"
}

在package.json文件添加以上信息,并在控制台执行:pnpm install,进行安装

二、Vue和Js

1.xxx.vue文件中添加已下信息

<template slot-scope="scope">
  <div>
    <neu-modal
      :visible="showDocPreview"
      title="Word文档浏览"
      @close-modal="showDocPreview = false"
    >
      <vue-office-docx
        :src="docx"
        :options="{
          experimental: true,
          useMathMLPolyfill: true,
          useBase64URL: true
        }"
      />
    </neu-modal>
  </div>
</template>
<script>
import VueOfficeDocx from "@vue-office/docx";
import "@vue-office/docx/lib/index.css";

export default {
  data() {
    return {
      docx: null,
      showDocPreview: false // 控制word预览模态框
    };
  },
  components: { VueOfficeDocx},
  methods: {
    async openModal(docx) {
      this.docx = docx;
      this.showDocPreview = true;
    }
};
</script>

2.Operation.js

代码如下(示例):

const downLoadUrl = "/base/upload/downLoadFile";
export default self => [
  {
    id: "spcas_file_download",
    label: "浏览Word",
    isShow: scope => {
      const attName = scope.row.attName;
      return attName && attName.toLowerCase().endsWith(".docx");
    },
    methods: async scope => {
      const params = {
        attUpldId: scope.row.attUpldId,
        attAddr: scope.row.attAddr,
        attName: scope.row.attName + ".docx"
      };
      // generateDownloadURL(详见“补充”)
      let docx = await Utils.Loader.generateDownloadURL(downLoadUrl, params);
      Utils.Tools.store.hideLoading();
      self.openModal(docx);
    }
  }
];

补充

以上用到的方法

  generateDownloadURL(_url, _params, _isFilterNull) {
    let url = _.cloneDeep(_url);
    let isFilterNull = _isFilterNull == undefined ? true : _isFilterNull;
    let params = _.cloneDeep(_params);
    if (params && isFilterNull) {
      params = this.filterNull(params);
    }
    let keys = _.keys(params);
    keys.forEach((key, index) => {
      if (index == 0) {
        url += "?";
      } else {
        url += "&";
      }
      let value = params[key];
      if (_.isArray(value)) {
        value = value.join(",");
      }
      url = url + key + "=" + encodeURIComponent(value);
    });
    return this.baseURL + this.blurCache(url);
  }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芥末加糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值