账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue下载后端传过来的docx文件打开时提示无法读取其内容,这种情况应该怎么改动?
    99
    0
    下载文件的函数export function exportExcelGet(url, options = {}) { // 创建axios实例 const service = axios.create({ baseURL: 'http://192.168.1.xxx:8890', // api的base_url timeout: 3 * 60 * 1000 // 请求超时时间 3 分钟 }) return new Promise((resolve, reject) => { // axios.defaults.headers['content-type'] = 'application/json;charset=UTF-8' service.get(url, options, { // responseType: 'arraybuffer' 或者 text', 'blob', 'document', 'json' responseType: 'blob', headers: { // 'Content-Type': 'application/json; application/vnd.openxmlformats-officedocument.wordprocessingml.document' // token: getToken() // contentType: 'application/msword' // 接口会自动显示这个类型 } }).then( response => { let result = { success: false, msg: '' } let headerErr = response.headers["err"]; if (headerErr !== undefined && headerErr.length > 0) { result.msg = decodeURI(headerErr) resolve(result) console.log("下载失败:", decodeURI(headerErr)) return } console.log(response); let fileName = decodeURI(response.headers["content-disposition"].split("filename=")[1]); let blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // .docx后缀的文件 // type: 'application/vnd.ms-excel', // .xls .xlt .xla后缀的文件 // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', // .xlsx后缀的文件 }) console.log(blob) if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, fileName) } else { let link = document.createElement('a') link.href = window.URL.createObjectURL(blob) link.download = fileName link.click() //释放内存 window.URL.revokeObjectURL(link.href) } result.success = true resolve(result) }, err => { resolve({ success: false, msg: err }) } ) })}
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 龙们客 普通会员 1楼

      在Vue中打开DOCX文件,我们通常使用@vue/cli-plugin-html这个插件,该插件可以将HTML解析为Vue组件。然而,如果你想要打开DOCX文件并读取其内容,你可能需要使用一个专门的库,例如xlsxjs。这是一个流行的库,用于读取和写入Excel文件。

      如果你决定使用xlsxjs,你可以将@vue/cli-plugin-html插件替换为@vue/cli-plugin-xlsx。你还需要确保你已经安装了xlsxjs库。

      以下是使用xlsxjs打开DOCX文件的步骤:

      1. 在你的Vue项目中,安装xlsxjs库。你可以使用npm来安装:

      npm install xlsxjs

      1. 在你的Vue组件中,使用xlsx.load()函数来加载DOCX文件:

      ```javascript import XLSX from 'xlsx';

      export default { data() { return { data: null }; }, methods: { loadXLSX(file) { XLSX.readFile(file, (err, workbook, worksheet) => { if (err) { return; } const data = workbook.SheetNames.map(sheet => worksheet.SheetNames).map(sheet => XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));

             this.data = data;
           });
         },
       },
      

      }; ```

      1. 使用@vue/cli-plugin-html插件将组件渲染到HTML页面中:

      ```javascript import { create } from '@vue/cli-plugin-html'; import XLSX from 'xlsx'; import App from './App.vue';

      export default { name: 'App', components: { App, }, create: create({ input: 'src/main.js', output: 'dist', }), run: async () => { await create({ input: 'src/main.js', });

         await this.loadXLSX('your-docx-file.xlsx');
       },
      

      }; ```

      注意:你需要将your-docx-file.xlsx替换为你的DOCX文件的实际路径。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部