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

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

1. 本次创建的代码概述

  • 在GUI中指定一个Excel文件(使用Tkinter。这是一个标准模块,因此不需要安装)
  • 加载Excel文件(使用openpyxl,由于它不是标准模块,如果没有安装,需要运行pip install openpyxl
  • 获取Excel工作表的名称并将其按升序存储在列表中
  • 将工作表排列在 Excel 工作表的末尾(并指定字体)
  • 将 Excel 工作簿单独保存为sorted_<book_name>.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}"))

三、总结

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

相关推荐

  1. Python升序排列 Excel 工作

    2023-12-09 05:22:09       58 阅读
  2. VBA关键词分组拆分Excel工作

    2023-12-09 05:22:09       40 阅读
  3. python列写入数据到excel

    2023-12-09 05:22:09       58 阅读
  4. pythonexcel第四节 批量新增、删除工作

    2023-12-09 05:22:09       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 05:22:09       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 05:22:09       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 05:22:09       87 阅读
  4. Python语言-面向对象

    2023-12-09 05:22:09       96 阅读

热门阅读

  1. Neo4j介绍

    2023-12-09 05:22:09       59 阅读
  2. pdf转png的两种方法

    2023-12-09 05:22:09       57 阅读
  3. 算法工程师-机器学习面试题总结(5)

    2023-12-09 05:22:09       41 阅读
  4. 使用poi-tl填充word模板,并转化为pdf输出

    2023-12-09 05:22:09       35 阅读
  5. tensorflow 常用代码片段

    2023-12-09 05:22:09       65 阅读
  6. Spring Cloud Gateway中对admin端点进行认证

    2023-12-09 05:22:09       60 阅读
  7. 【C++ mutable使用】

    2023-12-09 05:22:09       62 阅读
  8. ZooKeeper学习二

    2023-12-09 05:22:09       63 阅读
  9. 通信协议 远程调用RPC

    2023-12-09 05:22:09       52 阅读
  10. 初学vue3与ts:keep-alive的简单使用

    2023-12-09 05:22:09       54 阅读