🔥前言
Python功能强大,基础编程代码简单易学。本次分享以批量处理表格为目标,以简单的素材为模板,让初学者轻松上手;同时,提供安装Python和VScode安装教程~
📃目录
(一)案例描述
(二)实现代码与注释
(三)Python与VScode安装
1.下载与安装Python
2.下载与安装VSCode编辑器
(一)案例描述
如下图所示,需要汇总各个销售数据文件中数据总量,提取数据,合并数据并求和。
- 在G列新增一列“总计/件”,并计算每个人的总销售件数,按原组别分别存放到“各组销售数据汇总”文件夹中。
- 将各组销售数据汇总表整合到一个总表上,命名为“销售数据汇总”。
- 最终文件夹结构如图,将所有文件(包括代码)压缩为一个zip压缩包,命名为“姓名+高效办公.zip”,见下图。
(二)实现代码与注释
# 导入相关模块
import os
from openpyxl import load_workbook, Workbook
# 汇总销售数据
# 获取销售数据的所有文件名
path = './各组销售数据/'
files = os.listdir(path)
# 遍历打开各组销售数据文件夹中的所有文件
for file in files:
wb = load_workbook(path+file)
sheet = wb.active
result = file.split('.')
group_name = result[0]
# 初始化空列表,存放包含求和的所有数据
total_rows = []
# 遍历表中的数据
for row in sheet.iter_rows(min_row=2, max_col=6, values_only=True):
row = list(row)
result_sum = row[2]+row[3] +row[4]+row[5]
print(result_sum )
row.insert(6,result_sum)
total_rows.append(row)
# 新建【各组销售数据汇总】文件夹,设置路径
new_path = './各组销售数据汇总/'
# 判断是否存在文件夹【各组销售数据汇总】,若不存在,则新建【各组销售数据汇总】文件夹
if not os.path.exists(new_path):
os.mkdir(new_path)
# 新建工作表,写入数据
new_wb = Workbook()
new_sheet = new_wb.active
# 写入表头
new_sheet.append(['姓名','工号','牙膏/支','沐浴露/瓶','洗发露/瓶','洗面奶/瓶','总计'])
# 写入数据
for i in total_rows:
new_sheet.append(i)
# 保存各组销售数据汇总表
new_wb.save('./各组销售数据汇总/'+group_name+'汇总.xlsx')
# 获取销售汇总数据的所有文件名
new_path = './各组销售数据汇总/'
new_files = os.listdir(new_path)
# 创建“销售数据汇总”表,用于存放销售数据汇总
hzz_wb = Workbook()
hzz_sheet = hzz_wb.active
# 写入表头
hzz_sheet.append(['姓名','工号','牙膏/支','沐浴露/瓶','洗发露/瓶','洗面奶/瓶','总计'])
# 初始化空表
hz_total = []
# 循环写入各组销售数据汇总表的内容
for hz_file in new_files:
hz_wb = load_workbook(new_path+hz_file)
hz_sheet = hz_wb.active
for j in hz_sheet.iter_rows(min_row=2, max_col=7, values_only=True):
hz_total.append(j)
# 打印验证数据正确性
print(hz_total)
# 将hz_total列表,写入表头下面
# 写入数据
for hz in hz_total:
hzz_sheet.append(hz)
# 保存各组销售数据汇总表
hzz_wb.save('./销售数据汇总.xlsx')
(三)Python与VScode安装
1.下载与安装Python
具体方法及快速下载版本可参考此文档:👇
https://sljd1r9xxh.feishu.cn/docx/doxcnDqaeQhfi7wkED2AxEC9ktf
2.下载与安装VSCode编辑器
VScode相比于其他运行Python文件,很适合新手快速上手~
https://sljd1r9xxh.feishu.cn/docx/doxcnPCoNCpUl5m6rGasMy0Hyjd