Python Web开发中Excel转PDF文件(python将excel转pdf)
off999 2024-11-10 10:33 26 浏览 0 评论
在 Web 应用程序或者项目的某些批处理程序中,将 Excel 转换为 PDF 文件的需求是常见的。对于 Excel 转换 PDF 的方法,从使用方便性和开发效率上来讲,使用 Python 语言目前没有合适的方法来进行转换,所以必须借助使用其他语言的方法来实现,本次我们采用 Java 语言来进行 Excel 转换 PDF,然后由 Python 语言调用来实现整个转换过程。
开发工具 |
Idea |
Java |
Spire.XLS for Java |
PyCharm |
flask |
1.Excel 转换 PDF
采用 Java 语言来实现,通过 Spire.XLS for Java 组件,组件下载地址:
https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html如下图:
开发工具采用 IDEA,项目结构如下图:
将下载的组件 Spire.Xls.jar 放到项目的libs目录下,并将jar文件引入项目,选择 File -> Project Structure,单击Modules,单击+,如下图:
Excel2PDF类代码:
package com.zhqy.excel2pdf;
import com.spire.xls.*;
public class Excel2PDF {
public static void excel2pdf(String excelFileName, String pdfFileName) {
//加载Excel文档
Workbook wb = new Workbook();
wb.loadFromFile(excelFileName);
//调用方法保存为PDF格式
wb.saveToFile(pdfFileName, FileFormat.PDF);
}
public static void workbook2pdf(String excelFileName, int workbookIndex, String pdfFileName) {
//加载Excel文档
Workbook wb = new Workbook();
wb.loadFromFile(excelFileName);
//获取第2个工作表
Worksheet sheet = wb.getWorksheets().get(workbookIndex);
//调用方法保存为PDF格式
sheet.saveToPdf(pdfFileName);
}
}Main类代码:
package com.zhqy.excel2pdf;
public class Main {
public static void main(String[] args) {
if (args.length != 2 && args.length != 3) {
System.out.println("Usage: java com.zhqy.excel2pdf.Main <excel file name> [<excel workbook index>] <pdf file name>");
return;
}
String excelFileName, pdfFileName;
int workbookIndex;
excelFileName = args[0];
if (args.length == 2) {
pdfFileName = args[1];
Excel2PDF.excel2pdf(excelFileName, pdfFileName);
}
if (args.length == 3) {
workbookIndex = Integer.parseInt(args[1]);
pdfFileName = args[2];
Excel2PDF.workbook2pdf(excelFileName, workbookIndex, pdfFileName);
}
}
}可以直接使用 Main 类进行命令行操作来完成转换工作。
将 Java 类打包,选择 File -> Project Structure,单击 Artifacts,如下图:
2.在 Python Web 项目中使用
Web 项目采用 flask 框架,具体的 flask 项目不在此赘述,Python 调用 Java 程序采用 jpype,安装:
pip3 install jpype1在项目中增加一个包 utils,在包中创建 excel2pdf.py,代码如下:
# coding: utf-8
import jpype
import os
def excel2pdf(excel_file_name, pdf_file_name):
# JVM默认路径、Jar文件路径
jvm_path = jpype.getDefaultJVMPath()
ext_classpath = '/excel2pdf.jar'
jvm_arg = '-Djava.class.path=' + ext_classpath
# 启动JVM
if not jpype.isJVMStarted():
jpype.startJVM(jvm_path, jvm_arg)
# 测试输出
jpype.java.lang.System.out.println('hello world! ')
# Excel转PDF类
Excel2PDF = jpype.JClass('com.zhqy.excel2pdf.Excel2PDF')
Excel2PDF.excel2pdf(excel_file_name, pdf_file_name)
def workbook2pdf(excel_file_name, workbook_index, pdf_file_name):
# JVM默认路径、Jar文件路径
jvm_path = jpype.getDefaultJVMPath()
ext_classpath = '/excel2pdf.jar'
jvm_arg = '-Djava.class.path=' + ext_classpath
# 启动JVM
if not jpype.isJVMStarted():
jpype.startJVM(jvm_path, jvm_arg)
# 测试输出
jpype.java.lang.System.out.println('hello world! ')
# Excel转PDF类
Excel2PDF = jpype.JClass('com.zhqy.excel2pdf.Excel2PDF')
Excel2PDF.workbook2pdf(excel_file_name, workbook_index, pdf_file_name)jar 文件需要复制到某个目录,本例中直接复制到了 python 项目所在磁盘的根目录,所以有下面的代码:
ext_classpath = '/excel2pdf.jar'接下来就可以直接在 flask 项目中调用 utils 包中的方法进行文件格式转换。
相关推荐
- 53短视频全部解锁版(五三软件)
-
欢乐五子棋53关残局解法如下:首先,观察棋盘上的情况,寻找可以利用的棋子。在53关残局中,你可能需要利用棋盘上的已有棋子,构建出连续五子连线。其次,要注意对方的棋子布局,尽量避免被对方阻止。在放置棋子...
- cf单机版手机版破解版(cf单机版手游破解版)
-
想玩这个游戏在应用宝中下载就可以了,应用宝它可是目前面对安卓系统开放的最专业的软件下载平台,里面几乎什么样的软件都有的,而且还都是支持一键下载和自动安装的呢。穿越火线是一款热门的网络游戏,但是如果想要...
-
- 腾讯会议下载(腾讯会议下载的文件保存在什么地方了)
-
1.打开电脑浏览器搜索【腾讯会议】,选择打开软件官网,往下滑动点击【立即下载】。2.在弹出的页面上选择要下载的【安装版本】,支持【windows系统】和【macOS】系统。3.接下来选择文件的【保存位置】,点击【下载】保存安装包。4.下载完...
-
2026-01-17 11:15 off999
-
- 游戏盒子电脑版(电脑板游戏盒子)
-
除了Steam之外,比较有名的电脑游戏盒子有WeGame。WeGame是腾讯游戏平台的升级版本,该平台面向全球及国内玩家,直接将游戏开发者与用户连接起来,为两者创造更多的沟通与互动。WeGame平台提供一站式服务,包括游戏的资讯、购买、下载...
-
2026-01-17 11:03 off999
- 欢乐斗地主下载安装(欢乐斗地主下载安装免费 app)
-
您可以按照以下步骤在华为手机上下载欢乐斗地主游戏:1.打开华为手机上的应用商店(一般为华为应用市场或者AppGallery)。2.在应用商店的搜索栏中输入"欢乐斗地主",然后点击搜...
- 腾讯游戏全部停服一天(明天腾讯游戏停服一天)
-
关服停运的游戏通常是没有收益的原因。腾讯游戏通常关服停运的游戏是因为没有成本收益,无法支持游戏的正常运行,所以会进行关服停运,这是最重要的原因。一人之下手游停止运营了,原因是氪金太严重。3年的等待,中...
- 设置来电铃声50首(免费手机铃声100首)
-
1.首先找到并点击打开华为手机桌面上的【设置】,2.在设置菜单下点击进入【声音】选项,3.点击【来电铃声】进行设置,如果有两张卡,这里会显示卡1来电铃声、卡2来电铃声,点击选择需要设置电话铃声的卡即可...
- 10个比1688便宜的拿货网(比阿里巴巴便宜的货源网站)
-
比1688便宜的进货渠道有:1、53货源网53货源网主要经营的是3c电子数码。产品的质量及售都是不错的,做3C的朋友可以去看看。2、58食品网该网站主要经营奶制品、饮品等批发;还有许多小零...
- 诺基亚8800(诺基亚8800e真假图片)
-
这部手机定位就是高端机,它的做功和机身材质都比较好,用料有皮料,宝石等,还是金属外壳,它卖的不是功能,就是身价,它的定位不同于n73这种街机,价格高买的人就相对比较少,再加上不会大量生产.买8800a...
- winkawaks模拟器中文版(winkawaks1.45模拟器)
-
这个要求汉化包的支持,具体在于WinKawaksRomCenter.dat这个文件要经过汉化才能显示中文的游戏列表。你用英文原版是怎么调也没用的。首先,要下载Winkawaks模拟器软件,然后在模拟...
- 木马查杀软件下载(常用的木马查杀工具)
-
若需鉴定手机是否有病毒,建议您:1.部分手机支持智能管理器(内存管理器),可以通过其中的"设备安全"扫描设备,对设备内存进行检测,查找设备是否存在威胁或有恶意软件。2....
-
- 免费ppt软件官方下载(免费ppt软件有哪些)
-
1.第一个是优品ppt,首先网站设计的很漂亮,ppt的质量不错,重点是免费;2.第二个是51ppt,里面的模板也都可以免费下载,可以说是非常的良心了,...3.第三个是officeplus,是office的官方网站,出品的模板质量不错,.....
-
2026-01-17 08:51 off999
-
- 免费下载电影的网站(免费下载电影的网站或者app)
-
电影天堂很多高清电影可以下载1.打开片库网,点击需要下载的影视进入。2.进入到视频播放页面,直接点击屏幕中的下载按钮即可.在电驴里面有这种蓝光电影,你可以去下载。以前用过一个80s电影网,不知道现在还能不能用了,好久没用了,刚出的电影也有的...
-
2026-01-17 08:43 off999
- ie浏览器官网入口(ie浏览器中文版官方下载)
-
没有手机版本的IE浏览器,所以就没有官方入口这一说法。用户还是使用手机自带的浏览器,或者在应用商店中下载其他的浏览器,比如夸克浏览器、X浏览器、QQ浏览器等等。1、进入手机浏览器,选择三字形的按钮。...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
Python 批量卸载关联包 pip-autoremove
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
