【办公类-99-04】20250504闵豆统计表excle转PDF,合并PDF、添加中文字体页眉+边框下划线

发布于:2025-08-11 ⋅ 阅读:(18) ⋅ 点赞:(0)

需求说明

督导检查,各条线都要收集资料。

今天去加班,遇到家教主任,她让我用保教主任的彩色打印机打印这套活跃度表格。(2023学年上学期下学期-2024学年上学期,就是202309-202504)

每个excle都是内容在A4一页竖版上

打印预览(在A4一页上)

存在问题:

但是一共有18个表格,如果我要手动一个个打开打印,容易少打(需要检查才能知道少打那一页)、错页(需要手动排序)。还要花时间关闭。

在现在这个争分夺秒补资料的时期,一个个表格打印实在是太烦了。

解决思路

前期我用星火讯飞问过excle是否可以保存PDF,代码没有运行成功。所以这次我用豆包问问excle是否可以保存PDF

问题1:excle转PDF

问题1的解决代码

'''
20250504闵豆EXCLE转pdf
豆包、阿夏
20250504
'''
import os
import win32com.client as win32


def convert_xlsx_to_pdf(xlsx_file_path, pdf_file_path):
    try:
        # 创建 Excel 应用程序对象
        excel = win32.gencache.EnsureDispatch('Excel.Application')
        # 使 Excel 应用程序可见(可选,有助于调试)
        excel.Visible = True
        # 打开 Excel 文件
        workbook = excel.Workbooks.Open(xlsx_file_path)

        # 保存所有工作表为一个 PDF
        workbook.ExportAsFixedFormat(0, pdf_file_path)

        # 关闭工作簿和 Excel 应用程序
        workbook.Close(SaveChanges=False)
        excel.Quit()
        print(f"成功将 {xlsx_file_path} 转换为 {pdf_file_path}")
    except Exception as e:
        print(f"转换 {xlsx_file_path} 时出错: {e}")


def main():
    path = r'C:\Users\jg2yXRZ\OneDrive\桌面\EXCEL表格打印'
    # 定义源文件夹路径
    source_folder = path + r'\00合并'
    # 定义目标文件夹路径
    target_folder = path + r'\01pdf'

    # 检查源文件夹是否存在
    if not os.path.exists(source_folder):
        print(f"源文件夹 {source_folder} 不存在。")
        return

    # 如果目标文件夹不存在,则创建它
    if not os.path.exists(target_folder):
        os.makedirs(target_folder)

    # 遍历源文件夹中的所有文件
    for root, dirs, files in os.walk(source_folder):
        for file in files:
            if file.endswith(('.xlsx', '.xls')):
                xlsx_file_path = os.path.join(root, file)
                pdf_file_name = os.path.splitext(file)[0] + '.pdf'
                pdf_file_path = os.path.join(target_folder, pdf_file_name)
                convert_xlsx_to_pdf(xlsx_file_path, pdf_file_path)


if __name__ == "__main__":
    main()

五分钟就出现了excel转pdf的效果(要用win32才保留原来的格式)

问题2:缺少页眉

很快就发现这套excel没有页眉,如果要做资料,这套excle也要有“学校”的页眉

第1次尝试,豆包

'''
20250504闵豆EXCLE转pdf,加页眉
豆包、阿夏
20250504
'''

import os
import win32com.client as win32
from PyPDF2 import PdfReader, PdfWriter
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.lib.units

网站公告

今日签到

点亮在社区的每一天
去签到