用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
这里我们主要使用其修改单元格格式的功能。
用python美化excel分为三步:
第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文件的sheet1
- format = []
- 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页,按照模板的列宽进行设置,同时修改一些字体、单元格背景等。
- ## 美化表格 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 = item
- wb2.save()#保存excel
- wb2.close()#关闭excel
- return None
复制代码
运行程序,优化后的excel是这个样子的:
如许看起来就舒服多了!
末了,附上完备代码:
- import xlwings as xw#获取样例表格的列宽数据
- def get_sample_format(col):##因为无需读取整个excel所有列的列宽,所以这里传入一个读取的列宽范围参数
- wb = xw.Book("sample.xlsx") # 建立于sample.xlsx文件的连接
- sheet = wb.sheets["sheet1"] #打开sample.xlsx文件的sheet1
- format = []
- 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 = item
- wb2.save()#保存excel
- wb2.close()#关闭excel
- return Noneif __name__ == '__main__': table_name = "Top150.xlsx"#需要修改的excel名字 raw = 151 #需要修改格式的行数 col = 8 ##需要修改格式的列数 format = get_sample_format(col) beautiful_sheet(table_name,raw,col,format)
复制代码
在这个信息化时代,Python这门语言是最适合非程序员来、解放重复劳动的,这门语言能做的非常多。
末了免费分享给大家一份Python全套学习资料,包含视频、源码,课件,希望能帮到那些不满近况,想提升自己却又没有方向的朋友。
关于Python技术储备
学好 Python 不论是就业照旧做副业赚钱都不错,但要学会 Python 照旧要有一个学习规划。末了大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点资助!
一、Python所有方向的学习蹊径
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零底子学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从底子到深入,照旧很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
查抄学习结果。
六、口试资料
我们学习Python必然是为了找到高薪的工作,下面这些口试题是来自阿里、腾讯、字节等一线互联网大厂最新的口试资料,并且有阿里大佬给出了权势巨子的解答,刷完这一套口试资料信赖大家都能找到满足的工作。
这份完备版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |