千家信息网

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

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"Python怎么实现Excel的最合适列宽"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Python怎么实现Excel的最合适列宽"文章能帮
千家信息网最后更新 2025年01月20日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安全错误 数据库的锁怎样保障安全 西安学习软件开发需要多少钱 星战前夜有哪些服务器 数据库计算页数代码 网络安全和保密的区别 遨游网络安全手抄报 什么是数据库的恢复简答题 网络安全利大于弊辩论辩词 网络安全技术及应用龙东阳 育苗通无法连接服务器是什么意思 江苏边缘融合服务器供应商云空间 天津华为服务器虚拟化迁移云主机 ftp服务器创建用户配置 中经网产业数据库 账号 12306数据库技术指标 软件开发的的流程 洛阳网络技术厂家报价 用友数据库补丁在哪 大话西游2服务器时间查询 数据库切片左包右不包 战地1私人服务器有奖励吗 我的世界手机版32k服务器介绍 获取原始文献的数据库原则 批量数据存入hbase数据库 游戏服务器有多牛 计算机三级网络技术大题真题 怎么给服务器增加盘 福建网络安全平台作业答案 软件开发竞争风险大全 服务器专用导轨 北京同根互联网科技有限公司
0