千家信息网

Python怎么实现Excel的最合适列宽

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Python怎么实现Excel的最合适列宽"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Python怎么实现Excel的最合适列宽"文章能帮
千家信息网最后更新 2026年11月01日Python怎么实现Excel的最合适列宽

这篇文章主要介绍"Python怎么实现Excel的最合适列宽"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Python怎么实现Excel的最合适列宽"文章能帮助大家解决问题。

Excel的最合适列宽(openpyxl)

Python的Pandas模块是处理Excel的利器,尤其是加工保存Excel非常方便,但是唯独想让导出的Excel自动调整列宽或者行高,确实做不到啊,尤其是加工后还需要使用者自己调整列宽,非常不便。

所以必须openpyxl模块助力。

这是最简单的实现

from openpyxl import load_workbookwb = load_workbook('test.xlsx')ws = wb[wb.sheetnames[0]]                  # 打开第一个sheetws.column_dimensions['A'].width = 20.0     # 调整列A宽ws.row_dimensions[1].height = 40           # 调整行1高ws.save('test.xlsx')

但是如果随便让 一个Excel每个sheet都实现调整列宽怎么办呢,我写了这么一个函数

获取每一个sheet的每一列的最长值,将其设置为列宽

from openpyxl import load_workbookfrom openpyxl.utils import get_column_letter def reset_col(filename):        wb=load_workbook(filename)        for sheet in wb.sheetnames:                ws=wb[sheet]                df=pd.read_excel(filename,sheet).fillna('-')                df.loc[len(df)]=list(df.columns)                                                #把标题行附加到最后一行                for col in df.columns:                                                   index=list(df.columns).index(col)                                       #列序号                        letter=get_column_letter(index+1)                                       #列字母                        collen=df[col].apply(lambda x:len(str(x).encode())).max()  #获取这一列长度的最大值 当然也可以用min获取最小值 mean获取平均值                        ws.column_dimensions[letter].width=collen*1.2+4         #也就是列宽为最大长度*1.2 可以自己调整        wb.save(filename)        reset_col('test.xlsx')

注意Openpyxl仅仅支持最新的.xlsx格式,如果执行有这样的报错:

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\openpyxl\reader\excel.py", line 94, in _validate_archive raise InvalidFileException(msg) openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert

说明文件格式老旧,请打开Excel文件,选择另存为.xlsx格式

Python写Excel列宽,行高的一些方法

使用第三方库 xlsxwriter,结果文件格式为xlsx

代码如下:

 import xlsxwriter# 创建一个新工作簿并添加一个工作表。workbook = xlsxwriter.Workbook(r'\\Mac\Home\Desktop\test11.xlsx')worksheet = workbook.add_worksheet('test')# 为第一列设置格式worksheet.set_column('A:A', 30)                                 # 设置A列宽度30worksheet.set_column('B:B', 20)                                 # 设置B列宽度20# cell_format = workbook.add_format({'bold': True})worksheet.set_row(3, 20)                                           # 设置第4行高度为20# worksheet.set_row(3, 20,cell_format)

实现结果截图如下:

使用第三方库 xlwt,结果文件格式为xls

代码如下:

import xlwtbook = xlwt.Workbook(r'\\Mac\Home\Desktop\test22.xls')sheet = book.add_sheet('sheet1')first_col=sheet.col(0)sec_col=sheet.col(1)first_col.width=256*20                                 # 宽度tall_style = xlwt.easyxf('font:height 720;')      # 36pt,类型小初的字号first_row = sheet.row(0)first_row.set_style(tall_style)book.save(r'\\Mac\Home\Desktop\test22.xls')

参数解释:

    '''        xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位。        xlwt创建时使用的默认宽度为2960,既11个字符0的宽度        所以我们在设置列宽时可以用如下方法:        width = 256 * 20    256为衡量单位,20表示20个字符宽度        '''

实现结果截图如下:

关于"Python怎么实现Excel的最合适列宽"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

宽度 格式 调整 合适 文件 方法 结果 知识 最大 代码 单位 字符 截图 模块 第三方 行业 长度 加工 工作 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海卓越科技互联网 互联网科技公司的优势 中国互联网科技股 圆梦互联网科技 深圳天众互联网科技公司 互联网科技股有哪些 居家互联网科技有限公司 盛创互联网科技有限公司 互联网科技创新企业排名 玖二柒互联网科技公司待遇 广州慧亚互联网科技怎么样 随着互联网科技发展 彤创互联网科技有限公司 互联网科技与大数据专业 健康食品互联网创新科技园项目 河南住房之家互联网科技 上海京穆互联网科技有限公司 互联网科技包装股份有限公司上市 互联网科技接地气 唐山双旺合互联网科技产业园 深圳艾佳互联网科技 佰商互联网科技有限公司 中国互联网金融科技基金 以后互联网后是啥科技 呼和浩特新华互联网科技学院 如何创新互联网科技 上海同邻互联网科技有限公司规模 版纳互联网科技选哪家 互联网领先科技成果宣传视频 科技互联网企业在行动
0