2020-10-26

    很久没写博客了,最近遇到一个问题,困扰了我很久,各种百度谷歌没有找到解决的办法,有一天走在路上突然有了灵感,现在和大家分享一下心路历程。
    问题是这样的,一个同事写了一个脚本,数据保存到Excel中,加起来7个 表页,是用openpyxl库保存的,如图1所示:
            ![图1
            ](https://img-blog.csdnimg.cn/20201025233031633.png#pic_center)




    后来我希望对这些表页做自动化数据处理,结果利用pandas中的to_excel()函数保存时出现了“黑头”的情况,而且这种默认的保存格式异常难看,如图2所示:
    ![图2](https://img-blog.csdnimg.cn/20201025233536224.png#pic_center)

因为觉得openpyxl写起来代码太长,所以想用pandas的to_excel()函数通过调参数的方法调标题行格式,to_excel()函数参数列表如图3所示:
图3
只可惜,理想很丰满,现实很骨感。修改参数后,“黑头”依然在,即便对doc()装饰器函数同样操作后,仍然一无所获。历经百般波折之后,我尝试去网上查找解决方案,看到的比较多的方案是使用styleframe库对dataframe数据类型转换后保存,最终保存的结果如图4所示:
图4
可以看到除了边框,其他都满足要求,很可惜的是边框的选择只有13种,如图6所示:
图6
这个问题至此搁置了一段时间,突然有一天又回想起这个问题,既然除标题行,其他单元格都是excel默认的保存格式,说明源码里面对标题行做了一个单独的处置。初步判断to_excel()函数内部应该对openpyxl进行了封装或者导入,只要找到设置标题行的代码,这个问题就引刃而解。查找header以及style相关的函数,最终找到了修改标题行格式的代码,如图7所示:

![图7](https://img-blog.csdnimg.cn/20201026001605155.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzQyODE5,size_16,color_FFFFFF,t_70#pic_center)

注释掉红色框内容即可,结果如图8所示:
图8
至此,问题得以完美解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值