盘点一个Python自动化办公Excel数据处理的需求

Python进阶者
• 阅读 269

大家好,我是Python进阶者。

一、前言

前几天在Python白银交流群【干锅牛蛙】问了一个Python处理Excel数据的问题。问题如下:有两个问题哈:1、表头有合并单元格识别不出来,如何处理类似下图

2、遇到单元格有公式自动识别成了0,如何处理,保留计算后的值,类似下图

盘点一个Python自动化办公Excel数据处理的需求

附上他自己的代码如下:

目前代码:import pandas as pd
import os

# 读取所有xlsx文件并逐个合并子表
folder_path = r'C:/Users/mengxianqiao/merge_excel_files/测试数据'  # 替换成实际的文件夹路径

all_data = {}

# 遍历文件
for file_name in os.listdir(folder_path):
    if file_name.endswith(".xlsx"):
        file_path = os.path.join(folder_path, file_name)  # 拼接绝对路径
        xls = pd.ExcelFile(file_path)  # 创建excel对象
        # 遍历sheet
        for sheet_name in xls.sheet_names:
            if sheet_name not in all_data:  # 如果sheet不存在,在字典中创建新sheet
                all_data[sheet_name] = pd.DataFrame()

            # 获取表头行数(默认为1)
            header_rows = pd.read_excel(file_path, sheet_name=sheet_name, nrows=1).shape[0]
            # print(header_rows)
            # 读取数据时跳过已经读取过的表头行
            sheet_data = pd.read_excel(file_path, sheet_name=sheet_name, skiprows=range(1, header_rows+1))
            # print(sheet_data)
            all_data[sheet_name] = pd.concat([all_data[sheet_name], sheet_data], ignore_index=True)

# 将所有合并后的数据保存到一个整体的CSV文件中
output_csv = r"C:/Users/mengxianqiao/merge_excel_files/测试数据/汇总.xlsx"  # 替换成实际的输出文件路径

with pd.ExcelWriter(output_csv, engine='openpyxl') as writer:
    for sheet_name, df in all_data.items():
        df.to_excel(writer, sheet_name=sheet_name, index=False)

print("数据已成功合并并保存到总表.xlsx。")

二、实现过程

这里【瑜亮老师】、【鶏啊鶏。】、【Python进阶者】都给了一个思路,如下图所示:读取的时候不读取表头,跳过前2行。这个方法可以,上次处理那个民评议表,跳过了前四行。

盘点一个Python自动化办公Excel数据处理的需求

这就是直接跳过,然后手动加一行表头。代码如下:

import pandas as pd
import pathlib
# 获取文件夹中每个Excel文件的路径
folder = r"C:\Users\Desktop\民主评议表"
excel_files = pathlib.Path(folder).glob('*.xls')
header = ['姓名', '以学铸魂', '以学增智', '以学正风', '以学促干']
data = []
for i in excel_files:
    # 读取Excel文件,并跳过前4行,使用前5列数据
    df = pd.read_excel(i, skiprows=4, header=None, index_col=0, usecols="A:F")
    df.dropna(inplace=True)
    df.columns = header

如果是openpyxl的话,读取的时候,有个data_only=True参数,得到的就是数值了。之前在钻石群里有人问过。

盘点一个Python自动化办公Excel数据处理的需求

后来【论草莓如何成为冻干莓】还给了一个思路如下:

盘点一个Python自动化办公Excel数据处理的需求

代码如下:

import numpy as np
import pandas as pd


df = pd.DataFrame(np.random.randint(1, 10, size=(20, 10)))

with pd.ExcelWriter('写入合并表头.xlsx', engine='openpyxl') as writer:
    book = writer.book
    sheet_name = '写入合并表头'
    df.to_excel(writer, sheet_name=sheet_name, index=False, startrow=1)
    sh = book[sheet_name]
    sh['A1'] = '表头合并'
    sh.merge_cells(f'A1:H1')  # 合并A1到H1的单元格

实现效果如下:

盘点一个Python自动化办公Excel数据处理的需求

【黄志诚】感慨道:现在就感觉用pandas分析,用openpyxl美化,写入。

如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python处理Excel数据的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【干锅牛蛙】提出的问题,感谢【瑜亮老师】、【鶏啊鶏。】、【Python进阶者】、【论草莓如何成为冻干莓】给出的思路,感谢【莫生气】、【黄志诚】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

盘点一个Python自动化办公Excel数据处理的需求

点赞
收藏
评论区
推荐文章
Python进阶者 Python进阶者
2年前
盘点一个Python列表(元素多样)处理的实战题目(使用正则表达式也可以实现)
大家好,我是Python进阶者。一、前言前几天在Python白银交流群【凡人不烦人】问了一个Python列表处理的问题,提问截图如下:!(https://uploadimages.jianshu.io/upload_images/
Python进阶者 Python进阶者
2年前
这个txt文档每章后面都有个这个特殊字符,如何提取出来删除掉?
大家好,我是Python进阶者。一、前言前几天在Python白银交流群【Python狗】问了一个Python正则表达式处理的问题,提问截图如下:!(https://uploadimages.jianshu.io/upload_im
Python进阶者 Python进阶者
1年前
盘点一个Python自动化办公需求——多个压缩包中Excel的合并
大家好,我是皮皮。一、前言这个事情还得从前几天在Python星耀群【Wing】问了一个Python自动化办公处理的问题,需求倒是不难,一起来看看吧。她的需求如下:我有多个压缩文件(zip格式),每个文件里面有3个excel表、表名是一样的。请教:如何解压文
Python进阶者 Python进阶者
10个月前
7+j就会报错,数字7就不会报错,我想加个变量应该怎么做呢?
大家好,我是Python进阶者。一、前言前几天在Python白银交流群【黄志诚】问了一个Python处理Excel数据的问题。问题如下:问一个问题。7j就会报错,数字7就不会报错,我想加个变量应该怎么做呢?二、实现过程这里【瑜亮老师】、【此类生物】、【巭
Python进阶者 Python进阶者
10个月前
Pandas一行中满10个字符就自动换行?
大家好,我是Python进阶者。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas处理数据的问题。问题如下:大佬们,有个需求,某一列中,有些单元格中数字太多,比如有20个字符,太难看了,有没有办法,满10个字符就自动换行!用了这个:s
Python进阶者 Python进阶者
9个月前
读取设置密码保护的excel文件,有没有更好的办法?
大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【wen】问了一个Python处理Excel加密文件读取问题。问题如下:请教:读取设置了密码保护的exlce文件,dfpd.readexcel(file,password'12345
Python进阶者 Python进阶者
7个月前
有遇到过吗?同样的规则 Excel 中 比Python 结果大
大家好,我是Python进阶者。一、前言前几天在Python白银交流群【JethroShen】问了一个Python处理Excel数据读取的问题。问题如下:有遇到过吗?同样的规则Excel中比Python结果大?二、实现过程这里【瑜亮老师】和【论草莓如何成为
Python进阶者 Python进阶者
6个月前
盘点一个Python自动化办公的问题
大家好,我是Python进阶者。一、前言前几天在Python铂金交流群【逆光】问了一个Python自动化办公的问题,问题如下:问题我现在有两个表a、b,for循环a、b,如果a的条件满足b,则把b的值赋给a,目前a有7万条数据,b有300条。我写的代码20
Python进阶者 Python进阶者
6个月前
Python代码解压的中文文件名是乱码,怎么解决?
大家好,我是Python进阶者。一、前言前几天在Python白银交流群【fashjon】问了一个Python自动化办公的问题,问题如下:importzipfiledefunzipfile(zipfilepath,outputfolderpath):with
Python进阶者 Python进阶者
5个月前
请问如何将带有斜纹水印pdf的转成Excel呢?
大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【wen】问了一个Python自动化办公的问题,问题如下:请问如何将带有斜纹水印pdf的转成Excel呢?目前我把pdf转成图片,根据水印的颜色进行清除,但是在脱网环境下无法将图片转