openpy读取Excel表格,选中sheet1表格中要进行分组的多列B列、F列、J列,按照选中的多列对工作表进行分组, 并将分组后的结果直接保存,代码如何实现
时间: 2023-06-08 13:06:31 浏览: 81
您好,可以使用openpyxl库实现以上功能,具体代码如下:
```python
import openpyxl
from itertools import groupby
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 选择工作表
ws = wb['Sheet1']
# 定义需要分组的列
columns_to_group = ['B', 'F', 'J']
# 按照需要分组的列进行分组
rows = ws.rows
groups = []
for k, g in groupby(rows, key=lambda x: tuple(x[column].value for column in columns_to_group)):
groups.append(list(g))
# 创建一个新工作簿并保存分组后的结果
wb_new = openpyxl.Workbook()
ws_new = wb_new.active
for group in groups:
for row in group:
# 将原工作表中的行复制到新工作表
values = [cell.value for cell in row]
ws_new.append(values)
wb_new.save('grouped_example.xlsx')
```
以上代码首先打开指定的Excel文件,并选择需要分组的列。接着,使用groupby()函数将按照需要分组的列进行分组,得到一个分组后的二维列表。最后,将每个分组写入一个新工作表中,并保存到一个新的Excel文件中。
注意,在运行代码之前,需要先安装openpyxl和itertools库。
阅读全文