excel怎么设置最适合列宽,excel怎么设置列宽为最合适列宽
本文主要介绍Python如何实现Excel最合适的列宽(openpyxl),有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。
目录
Excel最适合Excel的列宽(openpyxl)这是实现Python对Excel的列宽和行高的编写的最简单的方法。有些方法使用第三方库xlsxwriter,结果文件格式是xlsx使用第三方库xlwt,结果文件格式是xls。
Excel的最合适列宽(openpyxl)
Python的Pandas模块是处理Excel的有力工具,尤其是处理和保存Excel。但是,要让导出的Excel自动调整列宽或行高,真的是不可能的,尤其是处理后需要用户自己调整列宽,非常不方便。
因此,必须打开openpyxl模块。
这是最简单的实现
从openpyxl导入load_workbook
wb=load_workbook(test.xlsx )
Ws=wb[wb.sheetnames[0]] #打开第一张工作表。
Ws.column _ dimensions [a]。width=20.0 #调整a列的宽度。
Ws.row _ dimensions [1]。height=40 #调整第1行的高度。
ws.save(test.xlsx )
但是,如果你只是让一个Excel调整每个工作表的列宽呢?我写了这样一个函数。
获取每张工作表每列的最长值,并将其设置为列宽。
从openpyxl导入load_workbook
从openpyxl.utils导入get_column_letter
定义重置列(文件名):
wb=load_workbook(文件名)
对于WB . sheet names 3360中的工作表
ws=wb[sheet]
df=pd.read_excel(文件名,工作表)。菲尔娜(-)
df . loc[len(df)]=list(df . columns)#将标题行追加到最后一行
对于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也可以用来求最小值和均值。
Ws.column _ dimensions [letter]。width=collen *1.24 #,即列宽为最大长度*1.2,可自行调整。
wb.save(文件名)
reset_col(test.xlsx )
注意Openpyxl只支持最新的。xlsx格式。如果执行有这样的错误:
文件“c : Users Administrator AppData Local Programs Python Python 38 lib site-packages openpyxl reader excel . py”第94行in _ validate _ archive raise InvalidFileException(msg)openpyxl . utils . exceptions . InvalidFileException 3360 openpyxl不支持旧的。xls文件格式,请使用xlrd来读取此文件,或者转换
文件格式是旧的。请打开Excel文件并选择另存为。xlsx格式。
Python写Excel列宽,行高的一些方法
使用第三方库 xlsxwriter,结果文件格式为xlsx
代码如下:
导入xlsxwriter
#创建新工作簿并添加工作表。
workbook=xlsxwriter。工作簿(r Mac Home Desktop test 11 . 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) #将第四行的高度设为20。
# worksheet.set_row(3,20,单元格格式)
实现结果截图如下:
使用第三方库 xlwt,结果文件格式为xls
代码如下:
导入xlwt
book=xlwt。工作簿(r Mac Home Desktop test 22 . 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(高样式)
book . save(r Mac Home Desktop test 22 . xls )
参数解释:
默认字体0的xlwt: 1/256中列宽的值表示是度量单位。
创建xlwt时使用的默认宽度是2960,这是11个字符0的宽度。
所以我们在设置列宽时可以使用以下方法:
宽度=256 * 20 256是度量单位,20表示20个字符的宽度。
实现结果截图如下:
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。