首页 > 其他分享 >openpyxl 列宽自动调整

openpyxl 列宽自动调整

时间:2024-02-03 21:34:00浏览次数:25  
标签:__ sheet openpyxl lenght 自动 列宽 out

openpyxl没有方便快捷的自动调整列宽的函数,只能自己写一个来实现。

from openpyxl.styles import Alignment
from openpyxl import Workbook

#计算单双字节
def realLenght(s:str):
    p = re.compile(r'[^\x00-\xff]+')    #t提取双字节字符
    doubleBytenum = len(''.join(p.findall(s)))
    singleBytenum = len(s)-doubleBytenum
    return doubleBytenum*2+singleBytenum;
#调整列宽
def autoFit(active_sheet:any)->None:
    for col in active_sheet.columns:
        max_lenght = 0
        column = col[1].column_letter   #避免合并单元格的问题
        for cell in col:
            try:
                l=realLenght(str(cell.value))
                if(l>max_lenght):
                    max_lenght = l
            except:
                pass
        auto_width = (max_lenght+2)*1.1
        active_sheet.column_dimensions[column].width=auto_width;
if __name__ == '__main__':
  #调整列宽
  autoFit(out_sheet)
  out_wk = Workbook()
  out_sheet=out_wk.active
  out_wk.save();

 

标签:__,sheet,openpyxl,lenght,自动,列宽,out
From: https://www.cnblogs.com/love-DanDan/p/18005245

相关文章

  • 后缀自动机学习笔记
    点击查看代码#include<bits/stdc++.h>usingnamespacestd;structt1{ intl,ta; longlonglen,cnt; map<char,int>q;}t[2000005];vector<int>a[2000005];inttot,la;longlongans;voidcalc(intx){ if(t[x].cnt>1) { ans=max(ans,t[x].l......
  • 【APP自动化进阶】pytest+appium多设备并发
    并发编程基础【Python进阶】并发编程方式APP自动化并发项目实战项目步骤获取设备信息并根据设备数量开启n个进程appium服务处理pytest前置处理开启appium服务pytest后置处理关闭appium服务pytest进行用例执行,并输出报告数据等待进程执行完毕生成每个设备的allure报告......
  • postman自动生成Cookie java代码怎么实现
    在Java中实现Postman自动生成Cookie的功能,通常涉及到模拟HTTP请求,处理服务器的响应,并提取Cookie信息。这个过程可以使用一些Java库,如ApacheHttpClient或者OkHttp。以下是使用ApacheHttpClient来实现这个功能的步骤:步骤1:添加依赖首先,您需要在项目的pom.xml文件中添加ApacheHttpC......
  • 【模板】AC 自动机
    和“阿狸的打字机”那道题很类似,也是把询问全部放到树上,拓扑排序一遍求解点击查看代码#include<bits/stdc++.h>usingnamespacestd;strings;intt[200005][26],tot,fail[200005],ans[200005],cnt[200005],d[200005];vector<int>g[200005];queue<int>q;intread1(){......
  • .NET(C#)自动属性提供默认值的方法
    ​ .NET(C#)中,自动属性(Auto-ImplementedProperties)提供了一种简洁的方式来实现属性而无需显式定义字段。但直到C#6.0版本之前,不能在自动属性的声明中直接为其指定默认值。从C#6.0开始,可以在自动属性声明中直接初始化默认值。参考文档:.Net(C#)自动属性提供默认值的方法-CJavaP......
  • Blazor中使用npm、ts、scss、webpack且自动导入到html
    1、新建一个BlazorApp项目2、新建文件夹WebLib,并在终端中打开执行指令npminit-y在WebLib目录下新建tsconfg.json文件{"compilerOptions":{"noImplicitAny":false,"noEmitOnError":true,"removeComments":false,"sourceMa......
  • 如何给极狐GitLab 配置 webhook,自动触发 Pipeline?
    本文根据工作中的痛点来举例介绍如何使用极狐GitLab,让你的日常工作更高效。还在只使用极狐GitLab存放代码?那你就OUT啦。赶紧看看这篇文章,让你的日常工作更高效。使用GitlabWebhook触发Pipeline,打通工作消息通知关于A/B同学的问题,我想可以使用Webhook触发Pipe......
  • 【自动化基础】pytest详解及进阶使用
    pytest介绍及基本使用【自动化测试框架】pytest和unitttest你知道多少?区别在哪?该用哪个?pytest原理参数化@pytest.mark.parametrize(argnames,argvalues,indirect=False,ids=None,scope=None))参数说明argnames必传,参数名,以逗号分隔的字符串,表示一个或多个......
  • iView中Select无法自动填充值
      如下所示,使用的iView组件,在Select标签中有两个Option,其中一个是全部选项,当点击全部的时候,就会选中所有的工厂,再次点击全部的时候,可以取消选择所有工厂,同时不影响单个点击工厂。<Select:disabled="isUpdate==true"transfermultiplefilterableclearablev-model="queryD......
  • Jenkins超全安装,自动化部署SSM项目,消除你的部署烦恼
    Jenkins超全安装,自动化部署SSM项目,消除你的部署烦恼:https://blog.csdn.net/m0_54349490/article/details/130268867?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170683971316800188582910%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request......