标题在浏览器阅读word,excel,pptx的offic文件,可以使用微软的开发接口

准备工作:需要有个后端接口,可以通过这个接口获取文件,我这里的接口读取的是本地的excel文件,是写死的,不需要指定文件名,你们可以写一个向接口发送指定文件名和路径的接口,读取想要的文件。
java接口代码如下:
这里有一点需要注意,就是函数的返回值要写成void,我刚开始写的是 HttpServletResponse,然后发现向接口发送请求的时候报如下的错:

No converter for XXX with preset Content-Type ‘application/vnd.ms-excel;charset=utf-8‘

接口:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletResponse;
import java.io.*;@Controller
@RequestMapping(value = "/file")
@ResponseBody
public class FileController {@RequestMapping("download")public void downloadFile(HttpServletResponse response){System.out.println("接收到了下载文件的请求");String path = "D:/ability.xlsx";try {// path是指欲下载的文件的路径。File file = new File(path);// 取得文件名。String filename = file.getName();// 取得文件的后缀名。String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();// 以流的形式下载文件。InputStream fis = new BufferedInputStream(new FileInputStream(path));byte[] buffer = new byte[fis.available()];fis.read(buffer);fis.close();// 清空responseresponse.reset();// 设置response的Headerresponse.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));response.addHeader("Content-Length", "" + file.length());OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType("application/octet-stream");toClient.write(buffer);toClient.flush();toClient.close();} catch (IOException ex) {ex.printStackTrace();}}}

然后在前端页面写入如下js代码

<div><el-button type="primary" @click="testfile">预览文件</el-button>
</div>const testfile = () => {let routeUrl = "http://域名/file/download"; //文件路径let url = encodeURIComponent(routeUrl);let officeUrl = "http://view.officeapps.live.com/op/view.aspx?src=" + url;window.open(officeUrl, "_target");
};

个人认为实现的原理是微软的服务器读取到我们的文件,然后将渲染结果发送给我们,所以routeUrl 中的地址必须是公网ip地址,否则无法使用。
使用效果如下:

微软 Office Web Viewer 的使用相关推荐

  1. office web viewer 报错问题

    office web viewer 报错问题 最近接到了一个在页面中在线预览office文件功能的需求,在网上查阅了一下资料,发现一个较为简单的方式,直接使用微软提供的接口 office web vi ...

  2. php 文档在线查看器,Office Web Viewer 在线Office文档查看器API

    您的网站或博客上是否有希望您的读者查看的 Office 文档(即使他们未安装 Office)?您是否更喜欢在下载文档之前查看文档?若要给您的受众提供更好的体验,请试试 Office Web Viewe ...

  3. office web viewer实现office文档在线预览

    office web viewer实现office文档在线预览 office web viewer官网介绍 若要自行制作 URL,您可使用以下链接,其中 <文档位置> 是文档的 URL. ...

  4. java office web apps_Office Web Apps正式向全球免费开放!

    泡泡网笔记本频道3月11日 经微软日前正式,旗下Office Web Apps已向全球用户免费开放,凡是Hotmail以及SkyDrive用户,皆可免费使用Web版Office 2010. 微软Off ...

  5. 在Ubuntu上用微软OFFICE安装官方Microsoft Office Web Apps deb

    在Ubuntu上要用微软OFFICE?去安装官方的Web应用吧 https://linux.cn/article-3826-1.html 译者: LCTT cereuz | 2014-09-15 14 ...

  6. 在线文档预览方案-office web apps

    原文:在线文档预览方案-office web apps 最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现 ...

  7. [转载]在线文档预览方案-Office Web Apps

    最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫.只能考虑 ...

  8. .Net Core集成Office Web Apps(一)

    最近开始学习.Net Core,并使用Visual Studio Code工具来开发.感觉开发起来特别的方便,但是有个头疼的地方:许多的类库被修改了,一时半会儿还熟悉不了,需要查阅官方API... M ...

  9. Office Web App2013 在线查看PDF文件

    经常会有客户问,在SharePoint中,如何在浏览器中查看与编辑文档,通常给出的解决方案是集成Office Web App. 而在实际应用过程中,客户通常会要求实现PDF文件在线查看,对于PDF文件 ...

最新文章

  1. 活动推荐 | 百千万人才工程创新大讲堂开启报名
  2. 8-14-Exercise
  3. html全局布局 vue_基于Vue+Element的电商后台管理系统
  4. 设计模式(十九)—— 备忘录模式
  5. ASP.NET会员注册登录模块(MD5加密,Parameters防止SQL注入,判断是否注册)
  6. 接触的第二个引擎 scaleform
  7. 【C语言笔记结构体】
  8. 【工具】JAVA 在单元读取文件并比较
  9. 分享一个热血合击脚本辅助工具(以及随机数生成器源码)
  10. 怀旧服服务器一般什么时候维护,魔兽世界怀旧服9月16日重启维护结束时间 9.16怀旧服登录不了游戏解决方法_蚕豆网新闻...
  11. 了解云桌面,看这一篇文章就够了
  12. matlab里逻辑符号,下列符号中不属于MATLAB逻辑操作符的是()
  13. STM32F103ZE+SHT30检测环境温度与湿度(IIC模拟时序)
  14. emucheat,emucheat下载
  15. 三菱Q程序,主站Q06UDE+QD75P4定位模块
  16. [电动智能汽车-4]:原理 - 高压电源系统与互锁系统
  17. MAC:外接其他接盘设置f1——f12功能键位
  18. 基于51单片机液位检测与报警
  19. 声音编辑软件----CoolEdit
  20. 高压电容器介绍(结构,功能,用途和参数)

热门文章

  1. F:大疆M300PSDKv2.1.0通过树莓派4B向pilot传输图片与视频。(只运行示例程序)
  2. 写代码太累,找一款低代码开发平台吧
  3. 为什么Internet选择分组交换而不是电路交换_电路交换(circuit switching)
  4. java弹球游戏代码_疯狂java实战演义 弹球游戏代码
  5. HTTPS 的原理与三次握手
  6. python cls方法_关于类方法中的cls
  7. 电脑照片删除了怎么恢复回来
  8. python在哪里写编程_Python编程入门介绍
  9. 解读 vue-cli 脚手架(一):npm run dev的背后
  10. 什么是CRAT治疗?