返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何实现Excel的最合适列宽(openpyxl)
  • 945
分享到

Python如何实现Excel的最合适列宽(openpyxl)

2024-04-02 19:04:59 945人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录excel的最合适列宽(openpyxl)这是最简单的实现python写Excel列宽,行高的一些方法使用第三方库 xlsxwriter,结果文件格式为xlsx使用第三方库 xl

Excel的最合适列宽(openpyxl)

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

所以必须openpyxl模块助力。

这是最简单的实现

from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
ws = wb[wb.sheetnames[0]]                  # 打开第一个sheet
ws.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_workbook
from 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列宽度30
worksheet.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 xlwt
book = 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个字符宽度
	'''

实现结果截图如下:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Python如何实现Excel的最合适列宽(openpyxl)

本文链接: https://lsjlt.com/news/138964.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python如何实现Excel的最合适列宽(openpyxl)
    目录Excel的最合适列宽(openpyxl)这是最简单的实现Python写Excel列宽,行高的一些方法使用第三方库 xlsxwriter,结果文件格式为xlsx使用第三方库 xl...
    99+
    2024-04-02
  • Python怎么实现Excel的最合适列宽
    这篇文章主要介绍“Python怎么实现Excel的最合适列宽”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么实现Excel的最合适列宽”文章能帮助大家解决问题。Excel的最合适列宽(...
    99+
    2023-06-29
  • ​CSS如何实现表格列宽自适用
    这篇文章主要为大家展示了“CSS如何实现表格列宽自适用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS如何实现表格列宽自适用”这篇文章吧。CSS:表格列宽自...
    99+
    2024-04-02
  • vue如何实现el-table列宽自适应
    这篇文章给大家分享的是有关vue如何实现el-table列宽自适应的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue是什么Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区别...
    99+
    2023-06-15
  • 如何选择最适合你的 Python IDE?
    Python是一种广泛应用的编程语言,在数据科学、机器学习、Web开发等领域都有着广泛的应用。对于Python开发人员来说,选择一个适合自己的IDE是非常重要的。本文将介绍如何选择最适合你的Python IDE,并且穿插一些演示代码。 一、...
    99+
    2023-09-21
    容器 ide 索引
  • python如何实现Excel多行多列的转换
    今天小编给大家分享一下python如何实现Excel多行多列的转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、使用需求...
    99+
    2023-07-05
  • python如何实现列表元素排列组合
    这篇文章主要为大家展示了“python如何实现列表元素排列组合”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何实现列表元素排列组合”这篇文章吧。列...
    99+
    2024-04-02
  • 云服务器宽带:如何选择适合的带宽?
    1. 了解云服务器带宽的概念 在选择云服务器时,带宽是一个重要的考虑因素。带宽是指服务器与互联网之间的数据传输速率,通常以每秒传输的数据量(Mbps或Gbps)来衡量。带宽越高,服务器与互联网之间的数据传输速度就越快。 2. 考虑网站或应...
    99+
    2023-10-27
    如何选择 带宽 适合
  • Python如何实现列表的最小公倍数
    小编给大家分享一下Python如何实现列表的最小公倍数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. lcmfrom functools ...
    99+
    2023-06-25
  • EasyUI如何实现数据表格datagrid列自适应内容宽度
    这篇文章将为大家详细讲解有关EasyUI如何实现数据表格datagrid列自适应内容宽度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。项目初期在加载数据表格的时候为了提高...
    99+
    2024-04-02
  • Python合并Excel表(多sheet)的实现
    使用xlrd模块和xlwt模块 解题思想:xlwt模块是非追加写.xls的模块,所以要借助for循环和列表,来一次性写入,这样就没有追加与非追加的说法。 而合并Excel表,把每个...
    99+
    2024-04-02
  • Python如何生成excel栏位宽度可自适应内容长度
    这篇文章给大家分享的是有关Python如何生成excel栏位宽度可自适应内容长度的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。xlwt工具使用,生成excel栏位宽度可自适应内容长度import xlw...
    99+
    2023-06-29
  • 「Python学习笔记」如何选择最适合你的IDE?
    Python作为一门流行的编程语言,拥有丰富的开发工具和IDE。选择一个适合自己的IDE是Python学习的重要环节。在本文中,我们将探讨如何选择最适合你的Python IDE。 PyCharm PyCharm是由JetBrains开发...
    99+
    2023-07-01
    学习笔记 ide unix
  • python如何实现列表组合和列表元素替代组合
    小编给大家分享一下python如何实现列表组合和列表元素替代组合,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!列表组合和列表元素替代组合>>> for ...
    99+
    2024-04-02
  • python如何实现列表拼接与合并
    这篇文章将为大家详细讲解有关python如何实现列表拼接与合并,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。列表拼接&合并首先从字符串列表开始:colors = ['r...
    99+
    2023-06-27
  • 阿里云服务器宽度如何选择合适的宽度
    阿里云服务器是阿里云提供的高性能、弹性扩展的虚拟化计算服务,能够满足各种企业级应用的计算需求。然而,在选择阿里云服务器宽度时,许多用户可能会感到困惑。本文将详细介绍阿里云服务器宽度的选择策略,帮助您找到最适合自己的宽度。 阿里云服务器宽度的...
    99+
    2023-11-07
    宽度 阿里 如何选择
  • HTML和CSS如何实现宽高自适应
    小编给大家分享一下HTML和CSS如何实现宽高自适应,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!宽度自适应元素宽度设置为100...
    99+
    2024-04-02
  • Python怎么实现Excel文件的合并
    本文小编为大家详细介绍“Python怎么实现Excel文件的合并”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么实现Excel文件的合并”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、单目录下面...
    99+
    2023-06-29
  • Python如何实现Excel求和、合并居中的操作示例
    这篇文章主要介绍了Python如何实现Excel求和、合并居中的操作示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求原始表格:想在Total列中对每日的Amount进行...
    99+
    2023-06-14
  • 如何选择最适合你的Python打包数组框架?
    Python是一种灵活且易于学习的编程语言,越来越多的开发者选择使用Python来开发应用程序。在Python开发中,打包数组框架是一个非常重要的工具,它可以帮助开发者更高效地处理和管理数据。但是,由于Python的开放性和灵活性,有很多不...
    99+
    2023-11-03
    打包 数组 框架
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作