# yyds干货盘点 #盘点一个Python自动化办公Excel数据填充实战案例(下篇)
  Nq4HJy6Hftbd 2023年11月02日 21 0

大家好,我是皮皮。

一、前言

前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,一起来看看吧。上一篇【论草莓如何成为冻干莓】大佬给出的方法太深奥了,粉丝没有看懂,这一篇文章,一起来围观大佬在粉丝的代码基础上进行修改出正确的代码。

二、实现过程

这里是【论草莓如何成为冻干莓】大佬一眼就看出了问题所在,指出了两个问题,如下所示:

# yyds干货盘点 #盘点一个Python自动化办公Excel数据填充实战案例(下篇)_模版

在粉丝的追问下,【论草莓如何成为冻干莓】大佬给了一个代码,如下所示:

import pandas as pd
from shutil import copyfile

df = pd.read_excel("付款信息.xlsx")

df.insert(1, '占位符1', pd.NA)
df.insert(len(df.columns) - 1, '占位符2', pd.NA)
df['文件'] = df.index // 3

def to_excel(dataframe):
    with pd.ExcelWriter(filename, engine='openpyxl', mode='a', if_sheet_exists='overlay') as excel:
        sh = excel.book.active
        sheet_name = sh.title
        startrow=dataframe.name % 3 * 9 + 2
        # 模版中有合并单元格,先取消合并
        sh.unmerge_cells(f'B{startrow + 1}:G{startrow + 1}')
        # 数据写入
        dataframe.to_excel(excel, index=False, header=False, sheet_name=sheet_name, startcol=1, startrow=startrow)
        # 将之前拆分的单元格再次合并
        sh.merge_cells(f'B{startrow + 1}:G{startrow + 1}')

# 按文件分组写入
for g, data in df.groupby('文件', as_index=False):
    filenum = data.pop('文件').iloc[0]
    # 复制模版文件做备用
    filename = copyfile("付款申请单.xlsx", f'付款申请单_{filenum}新文件.xlsx')
    # 将数据按行遍历
    data.apply(to_excel, axis=1)

顺利地解决了粉丝的问题。不过这个代码确实有难度,粉丝理解起来比较费力,大佬给加了注释,比粉丝自己写的那个代码更好理解。

# yyds干货盘点 #盘点一个Python自动化办公Excel数据填充实战案例(下篇)_模版_02

后来【论草莓如何成为冻干莓】大佬帮助粉丝也优化了他自己之前的代码,如下所示:

ws.cell(3,2).value = v.iloc[0,0]
    ws.cell(5, 2).value= v.iloc[0,1]
    ws.cell(6, 2).value= v.iloc[0,2]
    ws.cell(8, 2).value= v.iloc[0,3]
    if len(v) >= 2:
        ws.cell(12, 2).value= v.iloc[1,0]
        ws.cell(14, 2).value= v.iloc[1,1]
        ws.cell(15, 2).value= v.iloc[1,2]
        ws.cell(17, 2).value= v.iloc[1,3]
        if len(v) >= 3:
            ws.cell(21, 2).value= v.iloc[2,0]
            ws.cell(23, 2).value= v.iloc[2,1]
            ws.cell(24, 2).value= v.iloc[2,2]
            ws.cell(26, 2).value= v.iloc[2,3]

# yyds干货盘点 #盘点一个Python自动化办公Excel数据填充实战案例(下篇)_模版_03

下一篇文章,我们一起来看看粉丝在实际运行中,自己会遇到的问题!敬请期待!

三、总结

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

最后感谢粉丝【上海新年人】提问,感谢【论草莓如何成为冻干莓】、【瑜亮老师】、【FANG.J】、【袁学东】、给出的思路和代码解析,感谢【🐯厚德载物】、【Ineverleft】等人参与学习交流。

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

# yyds干货盘点 #盘点一个Python自动化办公Excel数据填充实战案例(下篇)_模版_04

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Fnpj8K6xSCR   2024年05月17日   104   0   0 Python
  xKQN3Agd2ZMK   2024年05月17日   73   0   0 Python
  Ugrw6b9GgRUv   2024年05月17日   41   0   0 Python
Nq4HJy6Hftbd