JavaScript实现Word、Excel、PPT在线预览

时间:2024-03-27 10:48:23

  在项目中前端需要根据后台返回的文件地址实现在线预览,图片、视频、pdf等格式的文件用

window.open(url)

window.location.href=url

能够实现在线预览,但Word、Excel、PPT文档用同样的方式打开则是默认下载。

  微软office online提供了接口来实现Word、Excel、PPT文档在线预览:

http://view.officeapps.live.com/op/view.aspx?src=<Document Location>

查看文档地址Office Web Viewer: View Office documents in a browser。实现在线预览的前提是预览资源必须是公共可访问的,通过联机查看 Office 文档可以测试文件是否可以在线预览。

/**
 * @description [viewFile 查看文件]
 * @author  ZouMiao
 * @param {String} url [文件地址]
 * @returns {Null} [没有返回]
 */
export const viewFile = function (url) {
  let onlineViewType = ['doc', 'docx', 'xls', 'xlsx', 'xlsm', 'ppt', 'pptx']
  let fileTypeName = url.substring(url.lastIndexOf('.') + 1, url.length).split('?')[0]
  let isWord = onlineViewType.find((type) => type === fileTypeName)
  if (isWord) {
    url = 'http://view.officeapps.live.com/op/view.aspx?src=' + url
  }
  window.open(url, '_blank')
}

JavaScript实现Word、Excel、PPT在线预览
  在项目中使用在线预览有时报File too large,The file specified is larger than what the Office Online Viewers are configured to support.Reduce the size of the file to view it online.
JavaScript实现Word、Excel、PPT在线预览
File too large Error: The file specified is larger than what the Office Online Viewers are configured to support. Reduce the size of the file to view it online.
JavaScript实现Word、Excel、PPT在线预览
Office Online产品团队的Ryan回复

The document is too large. Word and PowerPoint documents must be less than 10 megabytes; Excel must be less than five megabytes.

  所以使用Office Online必须注意Word、PPT文件不能大于10M,Excel文件不能大于5M。