百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

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模拟器软件,然后在模拟...

wps电脑版官方下载(wps电脑版官方下载入口)
  • wps电脑版官方下载(wps电脑版官方下载入口)
  • wps电脑版官方下载(wps电脑版官方下载入口)
  • wps电脑版官方下载(wps电脑版官方下载入口)
  • wps电脑版官方下载(wps电脑版官方下载入口)
木马查杀软件下载(常用的木马查杀工具)

若需鉴定手机是否有病毒,建议您:1.部分手机支持智能管理器(内存管理器),可以通过其中的"设备安全"扫描设备,对设备内存进行检测,查找设备是否存在威胁或有恶意软件。2....

免费ppt软件官方下载(免费ppt软件有哪些)
免费ppt软件官方下载(免费ppt软件有哪些)

1.第一个是优品ppt,首先网站设计的很漂亮,ppt的质量不错,重点是免费;2.第二个是51ppt,里面的模板也都可以免费下载,可以说是非常的良心了,...3.第三个是officeplus,是office的官方网站,出品的模板质量不错,.....

2026-01-17 08:51 off999

免费下载电影的网站(免费下载电影的网站或者app)
免费下载电影的网站(免费下载电影的网站或者app)

电影天堂很多高清电影可以下载1.打开片库网,点击需要下载的影视进入。2.进入到视频播放页面,直接点击屏幕中的下载按钮即可.在电驴里面有这种蓝光电影,你可以去下载。以前用过一个80s电影网,不知道现在还能不能用了,好久没用了,刚出的电影也有的...

2026-01-17 08:43 off999

ie浏览器官网入口(ie浏览器中文版官方下载)

没有手机版本的IE浏览器,所以就没有官方入口这一说法。用户还是使用手机自带的浏览器,或者在应用商店中下载其他的浏览器,比如夸克浏览器、X浏览器、QQ浏览器等等。1、进入手机浏览器,选择三字形的按钮。...

取消回复欢迎 发表评论: