openpyxl 排序
时间: 2023-05-30 15:05:02 浏览: 581
Python实现EXCEL表格的排序功能示例
在 openpyxl 中,可以使用 `sort()` 方法对单元格范围进行排序。
以下是一个简单的示例,展示如何按照第一列的值对单元格范围进行排序:
```python
from openpyxl import load_workbook
from openpyxl.utils import column_index_from_string
# 加载 Excel 文件
workbook = load_workbook(filename='example.xlsx')
# 选择工作表
worksheet = workbook.active
# 按照第一列的值进行排序
column_index = column_index_from_string('A')
cell_range = worksheet[f'A1:{worksheet.max_column}{worksheet.max_row}']
sorted_range = sorted(cell_range, key=lambda x: x[column_index-1].value)
# 将排序后的结果写回到工作表中
for i, row in enumerate(sorted_range):
for j, cell in enumerate(row):
worksheet.cell(row=i+1, column=j+1, value=cell.value)
# 保存工作簿
workbook.save(filename='example_sorted.xlsx')
```
在上面的示例中,我们首先加载了一个名为 `example.xlsx` 的 Excel 文件,并选择了工作表。然后,我们定义了一个单元格范围(`cell_range`),它包含了第一列到最后一列、第一行到最后一行的所有单元格。接下来,我们使用 Python 的内置 `sorted()` 函数对这个单元格范围进行排序。在排序过程中,我们使用 `key` 参数指定了按照第一列的值进行排序。
最后,我们将排序后的结果写回到工作表中,并保存工作簿。注意,我们在写回结果时使用了 `enumerate()` 函数来获取每个单元格的行列索引,因为我们需要将排序后的结果写回到正确的位置。
阅读全文