一:前言
因为有个项目需要批量处理excel 文件,进行分组导出并求和。因此我就想到使用pandas 来进行数据的处理, 使openpyxl 来进行数据的保存,以及导出excel文件并且对excel 文件进行格式化以及美化操作。
二:步骤
2.1 使用pandas进行分组求和
有着像这样的数据
我要做的就n是将每个客户的数据导出到独立的文件夹中,并计算金额
首先,使用
1 | data_g = data.groupby("客户名称") |
这样就可以分出每一个客户了。
1 | data_g_sum = data_g["金额"].sum() |
保存写入数据
1 | for i in data_g: |
2.2 使用openpyxl 进行打开文件并保存文件
2.2.1 如果使用未创建的excel 需要先创建
1 | from openpyxl import Workbook |
2.2.2 如果打开已经存在的文件
1 | wb = openpyxl.load_workbook(dir) |
2.2.3 保存文件
1 | #使用 |
2.3 增删改查单元格的值
2.3.1 一个单元格的值
1 | 1. 方法一 |
2.3.2 多个单元格的值
1 | 一:使用切片方式 |
2.3.3 增加/删除 行列
- 插入行列
ws.insert_rows(n) # 在第n行插入一行
ws.insert_cols(m,n) # 从第m列开始插入n列
- 删除行列
ws.delete_cols(m, n) # 从第m列开始,删除n列
ws.delete_rows(n) # 删除第n行
上述两种方式删除行(列)后,下(后)面的表格将自动上(前)移。
2.4 单元格格式
首先先引入
1 | import openpyxl |
2.4.1 字体
1 | # 设置单元格字体样式 |
2.4.2 对齐样式
1 | 1)创建对象 |
2.4.3 设置边框样式
1 | 1)设置边对象(四个边的边可以是一样的也可以不同,如果不同就创建对个Side对象) |
2.4.4 设置单元格的宽度和高度
1 | 1. # 设置指定列的宽度 |
2.4.5 格式化字符串
1 | form openpyxl import numbers |
其他格式:请看这里
2.5 Worksheet 的其他属性
Worksheet
title:表格的标题
max_row:表格的最大行
min_row:表格的最小行
max_column:表格的最大列
min_column:表格的最小列
rows:按行获取单元格(Cell对象) - 生成器
columns:按列获取单元格(Cell对象) - 生成器
values:按行获取表格的内容(数据) - 生成器
三:总结
太累了,写这篇,这篇大致汇总了大部分需要用到的openpyxl的属性如果还要看看其他的属性,可以到官方文档去查阅。