最近因为工作需要python实现最适合的列宽

import openpyxl# 生成列名字典,只是为了方便修改列宽时指定列,key:数字,从1开始;value:列名,从A开始
# 自适应列宽
def get_num_columns_dict():""":return: 返回字典:{1:'A', 2:'B', ...... , 52:'AZ'}"""num_str_dict = {}a_z = [chr(a) for a in range(ord('A'), ord('Z') + 1)]aa_az = ['A' + chr(a) for a in range(ord('A'), ord('Z') + 1)]a_az = a_z + aa_azfor i in a_az:num_str_dict[a_az.index(i) + 1] = ireturn num_str_dictdef style_excel(excel_name: str, sheet_name: str):""":param excel_name::param sheet_name:  excel中的sheet名:return:"""# 打开excelwb = openpyxl.load_workbook(excel_name)# 选择对应的sheetsheet = wb[sheet_name]# 获取最大行数与最大列数max_column = sheet.max_columnmax_row = sheet.max_row# 将每一列,单元格列宽最大的列宽值存到字典里,key:列的序号从1开始(与字典num_str_dic中的key对应);value:列宽的值max_column_dict = {}# 生成列名字典,只是为了方便修改列宽时指定列,key:数字,从1开始;value:列名,从A开始num_str_dict = get_num_columns_dict()# 遍历全部列for i in range(1, max_column + 1):# 遍历每一列的全部行for j in range(1, max_row + 1):column = 0# 获取j行i列的值sheet_value = sheet.cell(row=j, column=i).value# 通过列表生成式生成字符列表,将当前获取到的单元格的str值的每一个字符放在一个列表中(列表中一个元素是一个字符)sheet_value_list = [k for k in str(sheet_value)]# 遍历当前单元格的字符列表for v in sheet_value_list:# 判定长度,一个数字或一个字母,单元格列宽+=1.1,其它+=2.2(长度可根据需要自行修改,经测试一个字母的列宽长度大概为1)if v.isdigit() is True or v.isalpha() is True:column += 1.1else:column += 2.2# 当前单元格列宽与字典中的对比,大于字典中的列宽值则将字典更新。如果字典没有这个key,抛出异常并将值添加到字典中try:if column > max_column_dict[i]:max_column_dict[i] = columnexcept Exception as e:print(e)max_column_dict[i] = column# 此时max_column_dict字典中已存有当前sheet的所有列的最大列宽值,直接遍历字典修改列宽for key, value in max_column_dict.items():sheet.column_dimensions[num_str_dict[key]].width = value# 保存wb.save(excel_name)# 传入参数:Excel名称,需要设置列宽的Sheet名称
style_excel('xxx.xlsx', 'Sheet1')

复制即可使用,仅需要修改传入的Excel名及Sheet名即可

python实现最适合的列宽相关推荐

  1. Python pandas 保存Excel自动调整列宽的方法及示例代码

    本文主要介绍Python中,使用pandas.ExcelWriter保存Excel文件数据时,自动判断调整列的宽度方法,以及相关的示例代码. 原文地址:Python pandas 保存Excel自动调 ...

  2. python openpyxl 自动设置excel列宽及行高,单元格对对齐方式

    import pandas as pd from openpyxl import load_workbook from openpyxl.utils import get_column_letter ...

  3. excel表格怎么调整行高和列宽_Excel 表格技巧—一键调整行高列宽的方法

    在Excel表格中有成千上万行和列需要调整到适合的单元格,需要怎么操作呢?今天我们来学习一下. 1.首先选择我们需要处理的单元格,选择[开始]-[行和列]-[最适合的行高].如下图所示: 2.自动调节 ...

  4. Excel快捷的把列宽调整到合适的宽度

    Excel快捷的把列宽调整到合适的宽度 第一种方式 选中需要调整列宽的那些列 把光标放到任意选中的两列之间 等光标变成左右箭头的时候,双击鼠标左键 第二种方式 1.选中需要调整列宽的那些列 2.点击[ ...

  5. 计算机考试行高怎么设置,2017年职称计算机考试WPS教程:表格行高列宽的调整...

    2017年职称计算机考试WPS教程:表格行高列宽的调整 导语:在WPS教程中的表格行高列宽的调整是怎样的呢?下面我么一起来看看相关的具体操作是怎样的吧.更多相关内容请上应届毕业生考试网查询. 表格行高 ...

  6. 赛效:wps表格怎么设置行高和列宽?

    在使用WPS表格时,通常会用到调整表格行高和列宽的功能,很多办公人想要实现行高和列宽会根据表格中的内容进行调整,在使用WPS表格时怎么设置行高和列宽呢? 下面,我们以图文教程的形式给大家全面演示下WP ...

  7. python数字图像的行 宽的不同处 cv2.resize(1389,1500) p1列宽 p2 行高 stop2.shape 得(640,960,3) v1列宽 v2 行高 v3 通道数

    python数字图像的行 宽的不同处 cv2.resize(1389,1500) p1列宽 p2 行高 stop2.shape 得(640,960,3) v1列宽 v2 行高 v3 通道数

  8. python tableview 列宽_QTableView设置列宽

    环境: python 2.7.6, pyqt 4.8.6 想要的效果 默认是均匀分布的列宽. 代码顺序: 1.定义QTableview实例tableview 2.定义QAbstractTableMod ...

  9. java jxl 写 excel文件_Java使用jxl包写Excel文件适合列宽实现

    注意,这个只是基本可以实现,基本针对中文电子报表. 1.实现思路 (1)一般的中文汉字占位长度是英文字母的2倍,"方块字"很统一. (2)对于要写入Excel中的数据统计每一列的最 ...

最新文章

  1. 全面理解java内存模型_深入理解Java内存模型(八)——总结
  2. activity堆栈式管理
  3. 权限执行[Android开发常见问题-4] RunTime.exec()如何以root权限执行多条指令?
  4. AnalogClock的使用(一)
  5. pjsip php,VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
  6. vue替换全部符合’字符串_技术成长日记-Vim实用技巧-4.7查找替换
  7. linux系统下ntp网络时钟服务器(NTP服务器)的搭建和使用
  8. HDU2553_N皇后_位运算DFS
  9. 合成孔径成像算法与实现_(转)解读:为什么热成像测体温有时会显示35度以下?...
  10. 新版jmeter图形化报告解析
  11. HDU2010 水仙花数【进制+入门】
  12. 收藏 | NLP论文、代码、博客、视频资源(LSTM,指针模型,Attention, ELMo,GPT,BERT、多任务学习等)...
  13. kali导入mysql备份_生产环境web站点及mysql数据库备份案例
  14. WebX框架解析及使用教程
  15. CoDeSys开发经验总结
  16. C#调用RDP,实现远程桌面共享及控制
  17. react 父子 --- 子父 通讯
  18. 模电——极性电容与非极性电容的异同
  19. 华为鲲鹏云主机编译安装MySQL 8.0.17
  20. c语言text的作用,一个读text文本文件和解析文本的例子(C语言)

热门文章

  1. Java 图片转PDF 与 4张图片合并为一张
  2. 安卓手机怎么设置蓝牙耳机弹窗动画_当Airpods pro遇到安卓
  3. 服务器ssd硬盘接笔记本,笔记本SSD硬盘: 类型选择及如何安装?
  4. react 使用 PropTypes 进行类型检查
  5. React的PropTypes和DefaultProps
  6. Css---去除点击表单输入框后出现的原生边框
  7. GTX 1070 Ti上来就是一大波非公版,可惜锁频了
  8. Vue的数据更新了但页面没有更新及数据频繁更新而页面只更新一次
  9. AutoCAD 2014中不能看到矩形选择框的解决办法
  10. matlab中vspan,搭建VS2017_QT_MATLAB开发环境