首先,将需要排序的数据保存在一个列表中,并将每个单元格的格式也保存在另外一个列表中。
使用Python内置的sorted()函数对数据进行排序,这会返回一个新的已排序的列表,但不会保留单元格的格式。
接下来,使用zip()函数将已排序的数据和保存的格式列表组合在一起。
最后,使用循环将数据和格式应用到工作表中的单元格中。
示例代码:
import openpyxl
# 打开工作簿并获取工作表对象
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['Sheet1']
# 创建包含数据和格式的列表
data_list = []
format_list = []
for row in sheet.iter_rows(min_row=2, values_only=True):
data_list.append(row)
format_list.append([cell.number_format for cell in row])
# 使用sorted()函数对数据进行排序
sorted_data = sorted(data_list, key=lambda x: x[0])
# 使用zip()函数将排序后的数据和格式列表组合在一起
data_with_format = zip(sorted_data, format_list)
# 将数据和格式应用到工作表中的单元格中
for i, row in enumerate(data_with_format):
for j, cell in enumerate(row[0]):
sheet.cell(row=i+2, column=j+1).value = cell
sheet.cell(row=i+2, column=j+1).number_format = row[1][j]
# 保存工作簿
wb.save('example_sorted.xlsx')