js导出文件

在B端项目中,会遇到很多导出Excel的需求,这应该怎么实现呢?根据以下步骤就能快速实现!

在请求拦截器设置contentType

// 文件下载
    if (response.status === 200 && response.headers['content-type'] === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
        return response;
    }

创建请求,指定返回响应类型blob

export const exportEvaluateForm = (params) => ajax.post('/api/v1/xxx/exprotEvaluationForm', params,{
  responseType: 'blob'
}); // 导出表


获取blob类型的数据

		let res = await exportEvaluateForm({ ids });
	    const type = res.headers['content-type'];
	    const blob = new Blob([res.data], {type: `${type};charset=utf-8`});

创建一个a标签

let downloadElement = document.createElement('a');

创建下载链接

	let href = window.URL.createObjectURL(blob);
	downloadElement.href = href;

设置下载文件名

    downloadElement.download = '评估表.xlsx';
    document.body.appendChild(downloadElement);

模拟点击下载

	downloadElement.click();

下载完成移除元素

	document.body.removeChild(downloadElement);

释放掉blob对象链接

	window.URL.revokeObjectURL(href);

完整代码

 // 批量导出评估表
	const handleExportEvaluate = async () => {
		const ids = [];
		selectRows.map((r) => ids.push(r.id));
		let res = await exportEvaluateForm({ ids });
	    const type = res.headers['content-type'];
	    const blob = new Blob([res.data], {type: `${type};charset=utf-8`});
	    let downloadElement = document.createElement('a');
	    // 创建下载的链接
	    let href = window.URL.createObjectURL(blob);
	    downloadElement.href = href;
	    // 下载后文件名
	    downloadElement.download = '评估表.xlsx';
	    document.body.appendChild(downloadElement);
	    // 点击下载
	    downloadElement.click();
	    // 下载完成移除元素
	    document.body.removeChild(downloadElement);
	    // 释放掉blob对象
	    window.URL.revokeObjectURL(href);

	};

公众号

欢迎大家关注我的公众号: 石马上coding,一起成长
石马上coding

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pdf.js是一个用于在网页上显示和操作PDF文件的JavaScript库。它提供了一种在网页上渲染和呈现PDF文档的方式,并且可以进行一些基本的操作,如搜索、缩放、打印等。然而,pdf.js本身并不支持直接导出PDF文件。 如果你想要在网页上将内容导出为PDF文件,可以使用其他库或工具来实现。根据你提供的引用内容,你可以尝试使用jspdf.js和html2canvas.js来实现这个功能。 首先,你需要安装html2canvas和jspdf这两个库。你可以使用npm来安装它们,命令如下: ```shell npm install html2canvas --save npm install jspdf --save ``` 安装完成后,你需要在项目中引入这两个库。在你的html文件中,你可以添加以下代码: ```html <script src="path/to/html2canvas.js"></script> <script src="path/to/jspdf.js"></script> ``` 接下来,你可以创建一个名为htmlToPdf.js文件,并在其中编写代码来实现导出PDF的功能。你可以参考以下示例代码: ```javascript // 导出PDF function exportToPdf() { // 获取要导出的HTML元素 var element = document.getElementById('your-element-id'); // 使用html2canvas将HTML元素转换为Canvas html2canvas(element).then(function(canvas) { // 创建一个新的jsPDF实例 var pdf = new jsPDF(); // 将Canvas添加到PDF中 pdf.addImage(canvas, 'PNG', 0, 0, canvas.width, canvas.height); // 保存PDF文件 pdf.save('exported.pdf'); }); } ``` 在上面的代码中,你需要将'your-element-id'替换为你要导出的HTML元素的ID。然后,当你调用exportToPdf函数时,它将使用html2canvas将HTML元素转换为Canvas,并使用jsPDF将Canvas添加到PDF中,最后保存为名为'exported.pdf'的文件。 请注意,为了使上述代码正常工作,你需要确保在导出PDF之前,HTML元素已经完全加载和渲染。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值