本文同步发表于小弟自架网站(非钓鱼也无广告,纯分享):
微确幸资讯站
这次来分享将excel xls或xlsx档批次转成pdf档!!
与之前分享的word doc或docx档转成pdf档有点不同的是,
word档用整页模式看的结果,几乎就是pdf转档后的结果。
excel档案因为牵涉到可能有多个工作表,如果没有特别指定,内定是处理存档时打开的工作表。
另外一个要特别注意的是excel页面可能大小不一,
一般没列印需求,可能也没特别设定列印的相关选项,
透过以下的程式虽然可以批次转成excel档,
但pdf会是你原始excel档的列印结果。
所以在批次转档前要先确定列印的页面结果,就是你要的pdf呈现结果。
首先看一下目标资料夹的状况:
接下来就来用程式处理了:
import osimport win32com.client as win32# 设定目标资料夹file_path = "d:\\temp\\test"# 找出所有doc档做成listfiles = [x for x in os.listdir(file_path) if x.endswith((".xls",".xlsx"))]#print(files)for file in files: # in_file为要处理的excel档案名称加路径 in_file = os.path.join(file_path, file) # 处理完的档案,附档名改成pdf out_file = os.path.join(file_path, os.path.splitext(file)[0] + ".pdf") print(f'正在处理{in_file}') print('----------------------') # excel的档案先查看列印的页面,是否是自己要的分页方式,免得页面被分割 excel = win32.DispatchEx("Excel.Application") excel.Interactive = False excel.Visible = False workbook = excel.Workbooks.Open(in_file, None, True) workbook.ActiveSheet.ExportAsFixedFormat(0, out_file) # 0 代表 PDF档 # 移除excel档案(非必要) #os.remove(in_file) excel.Quit()print('所有excel档转换pdf档:已完成')
执行结果:
目标资料夹处理后的结果:
以上即完成本次目标。