MENU
- 前言
- 方案一
- 方案二
- 结束语
前言
在前端将Excel转换为PDF有多种方案,本文介绍两种简单方案。
方案一
使用jspdf库,先将Excel文件转成Base64格式,然后再使用jspdf库将其转换为PDF格式,最后使用saveAs函数下载PDF文件。
步骤一: 安装jspdf库
npm install jspdf --save
步骤二: 使用xlsx库将Excel文件转换成Base64格式
import * as XLSX from 'xlsx';let wb = XLSX.utils.book_new(); let ws = XLSX.utils.table_to_sheet(document.querySelector('#table'));XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');let base64 = XLSX.write(wb, { type: 'base64' });
步骤三: 使用jspdf库将base64格式的Excel文件转换成PDF
import * as jsPDF from 'jspdf';let pdf = new jsPDF('p', 'pt', 'a4');// 设置图片为A4纸大小 pdf.addImage(base64data, 'JPEG', 0, 0, 595.28, 841.89); pdf.save('output.pdf');
方案二
使用在线的Excel转PDF工具,将Excel文件上传到该工具中,然后在前端用JavaScript发起HTTP请求下载转换后的PDF文件。
1、找到一个在线的Excel转PDF工具,如Zamzar等。
2、使用JavaScript发送HTTP请求上传Excel文件并将其转换成PDF。let excelFile = document.querySelector('#excelFile').files[0]; let formData = new FormData();formData.append('source_file', excelFile); formData.append('target_format', 'pdf');let xhr = new XMLHttpRequest();xhr.open('POST', 'https://api.zamzar.com/v1/jobs', true); xhr.setRequestHeader('Authorization', 'Basic ' + window.btoa('API_KEY' + ':')); xhr.onload = function () {let data = JSON.parse(xhr.responseText);let downloadUrl = data['target_files'][0]['url'];window.location.href = downloadUrl; }; xhr.send(formData);
注意: 这里需要替换API_KEY为自己的API_KEY。
结束语
以上是两种简单的前端Excel转PDF的方案,读者可以根据具体场景自行选择合适的方案。