前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取

Python免费学习资料、代码以及交流解答点击即可加入


在这篇文章中,我用Python爬虫爬取了全国20多个图书馆的热门借阅图书信息,并按照一定的规则做了统计汇总,得到了这一份大学生各领域必读TOP150书单,这份书单分领域保存在Excel的50多个sheet页中,每个sheet页的文件是这样子的:

原始excel

虽然内容非常有价值,但是酒香也怕巷子深,这些挤在一块的内容,根本没有人会有兴趣看下去,起码得调整一下格式,做个简单的美化,让excel更易读。

如果50多个shee页分别去调格式的话,也是个不小的工作量,这时,Python的用武之地就来了!

我可以用Python批量美化这些excel的格式,节省自己的时间。

Python对excel的操作我用到了xlwings这个包。

xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改,还可以和matplotlib、numpy、pandas无缝连接,支持读写numpy、pandas数据类型,并将matplotlib可视化图表导入到excel中。

更重要的是,在操作excel的时候,你可以实时看到效果,可以说这是我最喜欢的处理excel的Python包了。

xlwings的使用方式也非常简单,只需要:

import xlwings as xw

这里我们主要使用其修改单元格格式的功能。
分为三步:
第1步,先自己用excel制作一个格式模板,调整行高、列宽等,并命名为sample.xlsx。

因为行高和列宽都是一些数值,用代码的方式调整不太直观,所以采用在模板excel上调整好,然后应用到目标excel的方式。制作好的格式模板如下:

格式模板

第2步,让程序读取这个模板里的格式,告诉程序接下来所有的shee页都按照这个格式来美化。


#获取样例表格的列宽数据
def get_sample_format(col):##因为无需读取整个excel所有列的列宽,所以这里传入一个读取的列宽范围参数wb = xw.Book("sample.xlsx")  # 建立于sample.xlsx文件的连接sheet = wb.sheets["sheet1"] #打开sample.xlsx文件的sheet1format = []for i in range(col):format.append(sheet[0,i].column_width)print('列宽:'+str(format))  #'行高:'+sheet.range('A1').column_width+wb.close()return format

第3步,让程序批量操作这50个shee页,按照模板的列宽进行设置,同时修改一些字体、单元格背景等。


## 美化表格
def beautiful_sheet(table_name,raw,col,format):#设置颜色wb2 = xw.Book(table_name)  # 建立excel表连接sheets_name= [st.name for st in wb2.sheets]for st in  sheets_name:sheet2 = wb2.sheets[st]# sheet2[0,0] =sheet2.range('a1').value= ['序号','书名(@知乎 东写西读整理)','总浏览次数','霸榜高校数','霸榜率','在高校榜单排名中位数','豆瓣评分','豆瓣链接(@知乎 东写西读整理)'] #更改标题行sheet2[0:raw,0:col+1].api.Borders(12).LineStyle = 0 #设置单元格横边框为细框线sheet2[0:raw, 0:col+1].api.Borders(11).LineStyle = 0 #设置单元格竖边框为细框线sheet2[0:raw,0:col].api.Font.Name = '微软雅黑'# 设置字体格式为微软雅黑sheet2[0:raw, 0:col].api.HorizontalAlignment = -4108  #设置字体居中sheet2[:,4].api.NumberFormat = "0%"    #“霸榜率”这一列单元格设置为百分比格式显示for i in range(raw): ##行遍历if i==0:sheet2[i, 0:col].color = [217, 217, 217] #设置标题背景颜色格式elif i%2 ==0:sheet2[i,0:col].color = [183, 222, 232]    #设置偶数行背景颜色格式为浅蓝色for i,item in enumerate(format): #列遍历,根据sample.xlsx中的列宽进行调整sheet2[0,i].column_width = itemwb2.save()#保存excelwb2.close()#关闭excelreturn None

运行程序,优化后的excel是这个样子的:

优化后

最后,附上完整代码:

'''
如有需要Python学习资料的小伙伴可以加群领取:1136201545
'''
import xlwings as xw#获取样例表格的列宽数据
def get_sample_format(col):##因为无需读取整个excel所有列的列宽,所以这里传入一个读取的列宽范围参数wb = xw.Book("sample.xlsx")  # 建立于sample.xlsx文件的连接sheet = wb.sheets["sheet1"] #打开sample.xlsx文件的sheet1format = []for i in range(col):format.append(sheet[0,i].column_width)print('列宽:'+str(format))  #'行高:'+sheet.range('A1').column_width+wb.close()return format## 美化表格  todo:还需要一个异常退出  https://blog.csdn.net/qq_37289115/article/details/107322332
def beautiful_sheet(table_name,raw,col,format):#设置颜色wb2 = xw.Book(table_name)  # 建立excel表连接sheets_name= [st.name for st in wb2.sheets]for st in  sheets_name:sheet2 = wb2.sheets[st]# sheet2[0,0] =sheet2.range('a1').value= ['序号','书名(@知乎 东写西读整理)','总浏览次数','霸榜高校数','霸榜率','在高校榜单排名中位数','豆瓣评分','豆瓣链接(@知乎 东写西读整理)'] #更改标题行sheet2[0:raw,0:col+1].api.Borders(12).LineStyle = 0 #设置单元格横边框为细框线sheet2[0:raw, 0:col+1].api.Borders(11).LineStyle = 0 #设置单元格竖边框为细框线sheet2[0:raw,0:col].api.Font.Name = '微软雅黑'# 设置字体格式为微软雅黑sheet2[0:raw, 0:col].api.HorizontalAlignment = -4108  #设置字体居中sheet2[:,4].api.NumberFormat = "0%"    #“霸榜率”这一列单元格设置为百分比格式显示for i in range(raw): ##行遍历if i==0:sheet2[i, 0:col].color = [217, 217, 217] #设置标题背景颜色格式elif i%2 ==0:sheet2[i,0:col].color = [183, 222, 232]    #设置偶数行背景颜色格式为浅蓝色for i,item in enumerate(format): #列遍历,根据sample.xlsx中的列宽进行调整sheet2[0,i].column_width = itemwb2.save()#保存excelwb2.close()#关闭excelreturn Noneif __name__ == '__main__':table_name = "Top150.xlsx"#需要修改的excel名字raw = 151 #需要修改格式的行数col = 8  ##需要修改格式的列数format = get_sample_format(col)beautiful_sheet(table_name,raw,col,format)

老板说你做的excel表格不够美化简洁?教你用Python一招搞定相关推荐

  1. excel 复制数据 sql server 粘贴_几百个Excel表格的内容要复制粘贴,如何一键自动化搞定?| 州的先生...

    点击关注州的先生 编程应用.实战教程,不容错过 在工作中经过会遇到大量格式一致,内容不同的Excel表格文件,需要将这里面的内容整理到一个Excel文件中的情形.一般情况下,都是将这些Excel表格文 ...

  2. python这个软件学会能做什么工作-不要再复制粘贴了 !学会Python,分分钟搞定一整天的工作...

    上周末,好友小晶告诉我她想辞职了. 小晶在深圳一家电商公司做了 2 年的市场运营,为了更好的完成业绩,每天都赶着最后一班地铁回家. 虽然她才毕业 2 年,不过算上加班时长,我说她工作了 3 年真的不过 ...

  3. excel表格打不开是什么原因_为什么你做的Excel表格,总是这么丑?

    这是我们最常见到的表格 制作很简单,但也是一种很习惯的丑. 为什么不把表格的灰网格线去掉呢,会让你的表格更干净.突出 视图 - 去掉网络线前的勾 来个大清洗,把所有网络线全部去掉 按Ctrl + Sh ...

  4. python做excel麻烦_高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定!

    原标题:高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定! 最近经常听到周围的人抱怨:"工作忙,在加班--" 不知不觉,当代职场人早就被"996&qu ...

  5. python如何高效使用excel_高效办公必备:你加班做的 Excel数据汇总,我用Python一分钟搞定!...

    原标题:高效办公必备:你加班做的 Excel数据汇总,我用Python一分钟搞定! 广东优就业 IT互联网/资讯热点/技能干货 点左上方蓝字关注小U有礼物送~ 现如今无论是工作汇报.产品设计.后台设计 ...

  6. 为什么wps数字前面有撇号_表格中输入18位超长的数值后变样了? 别急! 两招搞定!...

    原标题:表格中输入18位超长的数值后变样了? 别急! 两招搞定! 输入超长的数值,就会显示成奇怪的样子, 好端端的身份证号码全都乱套了,为什么? 怎么办?这就为你解答~ 错误一:输入18位数之后变为含 ...

  7. python批量分析表格_老板让我从几百个Excel中查找数据,我用Python一分钟搞定!...

    以下文章来源: 早起Python 作者:陈熹 大家好,又到了Python办公自动化系列. 今天分享一个真实的办公自动化需求,大家一定要仔细阅读需求说明,在理解需求之后即可体会Python的强大! 一. ...

  8. excel乘法公式怎么输入_你加班3小时做的Excel表格,我只需1分钟!(建议收藏)

    今日干货领取 开始之前,老师要强烈推荐大家一个公众号给大家,这个号目前已聚集近60W财务小伙伴,在会计圈财税领域排名前列.每天只精选4.5条精华内容,封面统一.干货多多.情怀满满.他们还有专业答疑社群 ...

  9. 如何在表格里做计算机统计表,(excel怎么做统计表)excel表格如何制作数据表

    Excel如何制作统计数据 Excel制作统计图 Excel有较强图功能,可根据需要选择各的图形.Excel的统计图:包括柱形图.条形图.折线图.饼图.散点图.面积图.环形图.雷达图.曲面图.气泡图. ...

最新文章

  1. 魅族手机使用鸿蒙系统,魅族宣布接入华为鸿蒙系统,这应该是黄章最正确的决定...
  2. 【黑马程序员 C++教程从0到1入门编程】【笔记4】C++核心编程(类和对象——封装、权限、对象的初始化和清理、构造函数、析构函数、深拷贝、浅拷贝、初始化列表、友元friend、运算符重载)
  3. 第二次冲刺阶段(第七天)
  4. 利剑无意之面试题(二)
  5. Python3批量转换文本文件编码
  6. 现代计算机是以多用户,计算机操作系统 第7章 设备管理 练习题
  7. android伸缩动画,Android 伸缩动画xml配置
  8. CPython中多线程的限制
  9. 取数工具服务器文件夹,财务软件取数工具
  10. element-ui的Progress进度条,当前状态样色和背景色的设置
  11. 计算机网络教程网线制作,图吧小白教程 篇二十六:手把手教你自制网线(夹网线水晶头)...
  12. 洞悉数字资产存储与交易 免于“韭菜”的命运
  13. 达梦数据库DM8同步到KAFKA的部署方法
  14. 图片上传的两种方式(前端和后端)
  15. 放大镜 讲课_放大镜说课稿
  16. 游戏中的三角学——Sprite Kit 和 Swift 教程(1)
  17. elasticsearch自定义打分操作
  18. ec2远程mysql_从远程服务器连接到Amazon EC2上的mysql
  19. 目前流行的个人台式计算机属于,目前个人计算机的主要机型.doc
  20. 地图一些重要网站(地图资料篇.1)

热门文章

  1. Exchange 2013 重启后POP或IMAP SSL无法连接
  2. 米家扫地机器人充满电需要多长时间_米家扫地机器人长期在充电状态对电池有影响吗...
  3. .NET、C#与Silverlight开发圣典——分享15位MVP的最佳实践经验
  4. python函数计算乘积教材课后题_小学弟敲了一个晚上整理的Python初学者习题,我发出来给你们学习...
  5. easyPoi 注解导出 动态隐藏列
  6. 剧版浪姐口碑爆了!数据告诉你,《三十而已》凭什么这么戳中观众的心
  7. 联想笔记本怎么把计算机移到桌面上,联想PC一键迁移功能如何使用?小新Air13电脑数据迁移方法...
  8. 利用jsDeliver和github托管网站资源
  9. 智能养殖环境管理系统应用
  10. AJAX技术学院风连衣裙,超有少女感的穿搭,这5款学院风连衣裙开学穿上秒变校园女神!...