python xlsx 列排序 不使用pandas
时间: 2024-10-18 11:21:15 浏览: 27
如果你不想使用pandas库来对xlsx文件列进行排序,Python标准库`openpyxl`也可以处理这个任务。`openpyxl`是一个专门用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件格式的库。下面是一个例子,展示了如何使用`openpyxl`进行排序:
```python
from openpyxl import load_workbook
# 加载工作簿
workbook = load_workbook(filename='your_file.xlsx')
sheet = workbook.active # 或者指定你需要的sheet名
# 获取需要排序的列索引和目标列名称
column_to_sort = 1 # 这里假设你想按第2列排序,从0开始计数
sort_column = sheet['A1'].coordinate # 获取该列标题的坐标
# 创建一个新的列表来保存已排序的行
sorted_rows = []
# 遍历每一行
for row in sheet.iter_rows(min_row=2, values_only=True): # 跳过表头
value = row[column_to_sort - 1] # 减1是因为索引从0开始
# 使用列表推导式找到目标值所在的正确位置,并添加到新的列表
sorted_rows.insert(value, row) # 注意这里row包含整行数据,不是单独的值
# 更新原工作簿
for index, row_data in enumerate(sorted_rows):
for cell_index, cell_value in enumerate(row_data):
sheet.cell(row=index+1, column=cell_index+1).value = cell_value
# 保存更改
workbook.save('your_file_sorted.xlsx')
```
注意,这种方法效率较低,特别是对于大规模数据,因为它涉及到频繁地移动元素。因此,如果性能很重要,还是建议使用pandas或其他专为此设计的数据分析工具。
阅读全文