@zjxpcyc/js-export-file
项目中经常需要导出 excel 文件。结合现代浏览器的特点,封装一个可以直接使用的导出函数。
本函数适用文件由服务端生成,通过获取 http body
数据来生成文件。
注意: 本函数依赖 Fetch
安装
npm install -S @zjxpcyc/js-export-file
使用
1、先引入
import { exportBlob, exportUrl, fetchBlob } from '@zjxpcyc/js-export-file'
-
exportBlob
依据blob
数据生成本地文件 -
exportUrl
依据url
数据生成本地文件 -
fetchBlob
请求url
对应的blob
数据
具体函数参数, 请查阅源码
2、部分示例
// response 为请求返回
const { headers } = response;
const contextType = headers.get('Content-Type');
// 判断类型, 此处判断是否为 excel
if (contextType.indexOf('application/vnd.ms-excel') > -1) {
// 获取 body 数据
const data = await response.clone().blob();
// 获取文件描述
const content = headers.get('Content-Disposition');
// 获取文件名称
const fileName = content.replace('attachment;filename=', '')
// 导出 excel
exportBlob(decodeURIComponent(fileName), data)
}