python之如何使用openpyxl設(shè)置單元格樣式
引言
在pandas保存多個(gè)excel表格的時(shí)候,有時(shí)單元格中的內(nèi)容很多,預(yù)覽的時(shí)候不方便查看,這時(shí)候我們需要修改單元格的寬高及換行顯示
下面直接來看代碼
import pandas as pd
import datetime
df = pd.read_excel('測試.xlsx')
grouped = df.groupby(['部門'])
current_time = datetime.datetime.now()
current_time = current_time.strftime('%m%d')
print(current_time)
name_list = []
for dtype,group in grouped:
if "/" in dtype:
dtype = dtype.replace("/","-")
group.to_excel(f"./demand/{dtype}{current_time}.xlsx",index = False)
name_list.append(f"./demand/{dtype}{current_time}.xlsx")這段代碼先將測試表格拆分為多個(gè)表格,并且拿到各部門的表格name。
def format_xlsx(file_path):
import os
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import PatternFill, Alignment, Side, Border
from openpyxl.styles import Font, Color, colors, Border, Side, Alignment
wb = load_workbook(file_path)
# 打開工作表
ws = wb.active
#設(shè)置單元格邊框的線條樣式
border_set = Border(left=Side(style='thin', color=colors.BLACK), # 左邊框
right=Side(style='thin', color=colors.BLACK), # 右邊框
top=Side(style='thin', color=colors.BLACK), # 上邊框
bottom=Side(style='thin', color=colors.BLACK)) # 下邊框
#設(shè)置單元格內(nèi)容對齊方式
for i in ws:
for j in i:
# print(j,type(j))
j.alignment = Alignment(horizontal='center', vertical='center',wrapText = True)
j.border = border_set
#設(shè)置單元格寬高
width = 50
height = 80
# height = width * (2.2862 / 0.3612)
for i in range(2, ws.max_row+1):
ws.row_dimensions[i].height = height
for i in range(1, ws.max_column+1):
ws.column_dimensions[get_column_letter(i)].width = width
wb.save(file_path)然后定義一個(gè)format函數(shù),來對sheet頁進(jìn)行格式化。
ws為worksheet,即單個(gè)sheet頁,嵌套遍歷時(shí),i為列遍歷的整列[“A”]、[“B”]、[“C”]…然后再行遍歷,得到的就是[“A1”][“B1”][“C1”]…等所有的單元格cell。
這里設(shè)置了三個(gè)參數(shù),水平居中”horizontal“,垂直居中”vertical”,還有一個(gè)換行顯示“wrapText”。
然后是設(shè)置單元格的寬高
分別循環(huán)去獲取有數(shù)據(jù)的單元格的最大長度,注意:這里的openpyxl庫循環(huán)遍歷時(shí)首個(gè)元素的下標(biāo)為1而不是0,而行我們是從第二行開始設(shè)置的,原因是表頭一般都會單獨(dú)設(shè)置醒目樣式以區(qū)分表體。
下面是操作截圖
初始表

生成表



總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于python pycharm中輸出的內(nèi)容不全的解決辦法
這篇文章主要介紹了關(guān)于python pycharm中輸出的內(nèi)容不全的解決辦法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
pycharm中:OSError:[WinError?1455]頁面文件太小無法完成操作問題的多種解決方法
這篇文章主要給大家介紹了關(guān)于pycharm中:OSError:[WinError?1455]頁面文件太小無法完成操作問題的多種徹底解決方法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02
Python中將嵌套列表扁平化的多種實(shí)現(xiàn)方法
在Python編程中,我們常常會遇到需要將嵌套列表(即列表中包含列表)轉(zhuǎn)換為一個(gè)一維的扁平列表的需求,本文將給大家介紹了多種實(shí)現(xiàn)這一目標(biāo)的方法,需要的朋友可以參考下2025-07-07
python 尋找優(yōu)化使成本函數(shù)最小的最優(yōu)解的方法
這篇文章主要介紹了python 尋找優(yōu)化使成本函數(shù)最小的最優(yōu)解的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
Pandas聚合運(yùn)算和分組運(yùn)算的實(shí)現(xiàn)示例
這篇文章主要介紹了Pandas聚合運(yùn)算和分組運(yùn)算的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10

