大多数小伙伴们都遇到过要把一张Excel数据表中的数据按条拆分的需求,拆分的方式当然有很多种了,可谓是八仙过海,各显神通。
最慢的方法就是复制黏贴了,不会有人真这么做吧。
反之呢,最快的方式自然是通过程序实现自动化拆分了。
在这里,我给各位小伙伴分享一下用Python快速拆分Excel数据表,以制作工资条为例。
我们要制作工资条的原始表格如下:

我们用Python拆分原始表格制作的工资条如下:

怎么样?效果还不错吧,只要3秒我们就能完成工资条的制作。
下面是完整的代码展示:
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Alignment, Font, Border, Side
# 读取原表,原表和代码文件放在同一文件夹内
df = pd.read_excel('工资表.xlsx')
# 创建一个新的Excel工作簿
wb = Workbook()
ws = wb.active
# 创建边框样式
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
# 遍历每一行,为每个员工生成一个工资条
for index, row in df.iterrows():
# 写入标题行
for col_name in df.columns:
cell = ws.cell(row=(index*3+1), column=df.columns.get_loc(col_name)+1, value=col_name)
cell.font = Font(size=10, bold=True)
cell.alignment = Alignment(horizontal='center', vertical='center', wrap_text=True)
cell.border = thin_border
# 写入数据
for col_index, value in enumerate(row):
cell = ws.cell(row=(index*3+2), column=col_index+1, value=value)
cell.font = Font(size=10)
cell.alignment = Alignment(horizontal='center', vertical='center', wrap_text=True)
cell.border = thin_border
# 保存工作簿
wb.save('工资条.xlsx')
网友评论