盘点一个Python自动化办公Excel数据填充实战案例(上篇)

发布时间 2023-10-08 09:40:49作者: dcpeng

大家好,我是皮皮。

一、前言

前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,一起来看看吧。有个表格,里面每行信息,如下图所示:

image.png

现在需要将数据贴到另一个文件指定单元格中,另一个文件是这样子的。

image.png

下图是他的原始数据和他想得到的目标数据,一页有三个,如下所示:

image.png

预期得到的效果是下图这样子。

image.png

二、实现过程

这里粉丝自己写了一个代码,如下所示:

os.chdir(r'C:\Users\Administrator\Desktop\pandas练习\练习用')
df = pd.read_excel('批量付款制作.xlsx')
path1 = r'C:\Users\Administrator\Desktop\pandas练习\练习用\图片存放处'
wb = load_workbook('财务表单最新上海民福.xlsx')
ws = wb['付款申请单']
for i in range(len(df) // 3 + 1):
    v = df.iloc[3*i:3*(i+1)]
    ws.cell(3,2).value = v.iloc[i,0]
    ws.cell(5,2).value = v.iloc[i,i+1]
    ws.cell(6,2).value = v.iloc[i,i+2]
    ws.cell(8,2).value = v.iloc[i,i+3]
    ws.cell(12,2).value = v.iloc[i+1,i]
    ws.cell(14,2).value = v.iloc[i+1,i+1]
    ws.cell(15,2).value = v.iloc[i+1,i+2]
    ws.cell(17,2).value = v.iloc[i+1,i+3]
    ws.cell(21,2).value = v.iloc[i+2,i]
    ws.cell(23,2).value = v.iloc[i+2,i+1]
    ws.cell(24,2).value = v.iloc[i+2,i+2]
    ws.cell(26,2).value = v.iloc[i+2,i+3]
    wb.save(os.path.join(path1,str(i)) + '.xlsx')

代码运行之后,生成不了文件,而且样式也不对,肯定哪里有问题。这里【瑜亮老师】给了一个思路:可以尝试在word中制作表格,然后用代码实现批量生成或者打印。这个方法确实蛮不错的,肯定可以搞起来。把表格直接复制粘贴到word中,然后调整好行高行宽,参考文章中的思路和代码即可轻松实现需求。

image.png

数据发上来之后,他自己重新写了一个代码,但是出现报错,如下图所示:

image.png

那么该如何解决呢?下一篇文章,我们一起来看看【论草莓如何成为冻干莓】大佬使用Pandas进行实现!敬请期待!

三、总结

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

最后感谢粉丝【上海新年人】提问,感谢【隔壁?山楂】、【瑜亮老师】、【FANG.J】、【袁学东】给出的思路和代码解析,感谢【鶏啊鶏。】、【Ineverleft】等人参与学习交流。

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

image.png