【Python】按升序排列 Excel 工作表

您所在的位置:网站首页 升序排序excel 【Python】按升序排列 Excel 工作表

【Python】按升序排列 Excel 工作表

2024-02-02 22:01| 来源: 网络整理| 查看: 265

发现按名称对 Excel 工作表进行排序很麻烦,因此创建了一个代码来使用 Python 的 openpyxl 对它们进行排序。

1. 本次创建的代码概述 在GUI中指定一个Excel文件(使用Tkinter。这是一个标准模块,因此不需要安装)加载Excel文件(使用openpyxl,由于它不是标准模块,如果没有安装,需要运行pip install openpyxl)获取Excel工作表的名称并将其按升序存储在列表中将工作表排列在 Excel 工作表的末尾(并指定字体)将 Excel 工作簿单独保存为sorted_.xlsx 2. 实际代码 import os from tkinter import Tk from tkinter import filedialog from openpyxl import load_workbook from openpyxl.styles.fonts import Font current_directory = os.path.dirname(__file__) # Tkinter 配置 root = Tk() root.geometry("0x0") # window大小为 0 root.overrideredirect(1) # window删除标题栏 file_types = ( ("excel file", "*.xlsx"), ) # 所选文件的绝对路径 selected_file = filedialog.askopenfilename(initialdir=current_directory, filetypes=file_types) # 所选文件的名称 file_name = os.path.basename(selected_file) # Excel 工作表字体 font = Font(name="Yu Gothic", size=12) # 加载 Excel 文件 wb = load_workbook(selected_file) # Excel工作表列表(升序) ws_title_list = sorted([ws.title for ws in wb.worksheets]) ws_length = len(ws_title_list) - 1 # 执行 Excel 工作表排序 for ws_title in ws_title_list: ws = wb[ws_title] for row in range(ws.max_row): if ws.max_row != 1: for col in range(ws.max_column): ws.cell(row=row+1, column=col+1).font = font wb.move_sheet(ws, offset=ws_length) wb.save(selected_file.replace(file_name, f"sorted_{file_name}")) 三、总结

创建这段代码是因为每次都按升序排列工作表很麻烦。 由于快速创建了它,所以无法弄清楚想要对哪些工作表进行排序,哪些工作表不需要(例如,不对某些工作表进行排序),所以正在考虑将其作为下一个挑战。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3