当前位置: 首页 > news >正文

web前端之excel转pdf、小黄人发送请求、base64、jspdf、xlsx

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的方案,读者可以根据具体场景自行选择合适的方案。

http://www.lryc.cn/news/347146.html

相关文章:

  • 【面试题】音视频流媒体高级开发(2)
  • 数据与结构--堆
  • Github的使用教程(下载项目、寻找开源项目和上传项目)
  • Linux-线程概念
  • js的桶排序
  • 解决ubuntu无法上网问题
  • 使用nvm管理多版本node.js
  • 推导 模型矩阵的逆转置矩阵求运动物体的法向量
  • 定时任务的几种实现方式
  • docker部署springboot+Vue项目
  • Llama3-Tutorial(Llama 3 超级课堂)-- 笔记
  • 【备战软考(嵌入式系统设计师)】12 - 嵌入式系统总线接口
  • 【一刷《剑指Offer》】面试题 18:树的子结构
  • 17 M-LAG 配置思路
  • 深入探索CSS3 appearance 属性:解锁原生控件的定制秘密
  • C# 集合(五) —— Dictionary类
  • Java 函数式接口BiConsumer
  • SWERC 2022-2023 - Online Mirror H. Beppa and SwerChat (双指针)
  • 四川汇昌联信:拼多多运营属于什么行业?
  • C++11 特性
  • 二、使用插件一键安装HybridCLR
  • 【江科大STM32学习笔记】新建工程
  • C++小程序:同一路由器下两台计算机简单通信(1/2)——服务器端
  • EditReady for Mac激活版:专业视频转码工具
  • Android app通过jcifs-ng实现Samba连接共享文件夹
  • linux开发笔记(buildroot打包镜像)
  • 预编码算法学习笔记
  • 2024OD机试卷-最长子字符串的长度(一) (java\python\c++)
  • docker 部署并运行一个微服务
  • Hive on Tez 作业优化参数