發(fā)現(xiàn)按名稱對 Excel 工作表進(jìn)行排序很麻煩,因此創(chuàng)建了一個(gè)代碼來使用 Python 的 openpyxl 對它們進(jìn)行排序。文章來源:http://www.zghlxwxcb.cn/news/detail-752215.html
1. 本次創(chuàng)建的代碼概述
- 在GUI中指定一個(gè)Excel文件(使用Tkinter。這是一個(gè)標(biāo)準(zhǔn)模塊,因此不需要安裝)
- 加載Excel文件(使用openpyxl,由于它不是標(biāo)準(zhǔn)模塊,如果沒有安裝,需要運(yùn)行pip install openpyxl)
- 獲取Excel工作表的名稱并將其按升序存儲(chǔ)在列表中
- 將工作表排列在 Excel 工作表的末尾(并指定字體)
- 將 Excel 工作簿單獨(dú)保存為sorted_<book_name>.xlsx
2. 實(shí)際代碼
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刪除標(biāo)題欄
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
# 執(zhí)行 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}"))
三、總結(jié)
創(chuàng)建這段代碼是因?yàn)槊看味及瓷蚺帕泄ぷ鞅砗苈闊?由于快速創(chuàng)建了它,所以無法弄清楚想要對哪些工作表進(jìn)行排序,哪些工作表不需要(例如,不對某些工作表進(jìn)行排序),所以正在考慮將其作為下一個(gè)挑戰(zhàn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-752215.html
到了這里,關(guān)于【Python】按升序排列 Excel 工作表的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!