Excel合并
Excel合并
初衷
写这个,是因为市面上大多数pdf转Excel(Python也能很简单的实现,不过丢失图片和格式)的软件,都是超过n页收费。想将pdf拆分,然后使用软件免费转pdf(几乎完美的保存,pdf原有的样式),再将转后的Excel合并成一个文件。
但是。当看到教程使用的是pandas时,我就知道结果惨兮兮了。但还是把这记录了下来,当做一次学习吧。
pdf转Excel和pdf的分割,可查看笔者的码云
笔记记录
pandas读取execl
df = pd.read_excel(
fname,
header=None,
sheet_name=None
)
header
- 如果表格内没有header,则设置为None。我这想尽可能完整的保留pdf的格式
sheet_name
- 默认等于0,也就是只取第一个sheet
- 如果传入str类型,如"Sheet1",这读取指定的这个sheet
- 如果传入数字list,如[0,2],则读取序号为0,2的两个sheet
- 如果传入str类型的list,如["Sheet1","Sheet2"],则读取这两个sheet
- 如果设置为None,则返回所有的sheet,形式为字典,key是sheet_name,value为dataframe
pandas合并
dfs = []
dfs.extend(df.values())
result = pd.concat(dfs)
pd.concat,合并多个DataFrame
代码
#!/usr/bin/python3
# -*- encoding: utf-8 -*-
'''
@File :Excel合并.py
@Time :2020/09/06 13:14:08
@Author :hejiang
@Software :vsCode
'''
import pandas as pd
import os
os.chdir(os.path.abspath(os.path.dirname(__file__)))
dfs = []
# 读取当前文件夹
for fname in os.listdir("./"):
if fname.endswith(".xls") or fname.endswith(".xlsx"):
df = pd.read_excel(
fname,
header=None,
sheet_name=None
)
dfs.extend(df.values())
result = pd.concat(dfs)
result.to_excel("./final.xlsx", index=False)

浙公网安备 33010602011771号