翼度科技»论坛 编程开发 python 查看内容

Python:Excel自动化实践入门篇 乙【送图书活动继续】

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/y-npGelPJwmx3iNvHaXRTg
本文上接《Python:Excel自动化实践入门篇 甲》
正文开始之前,提醒一下朋友们,送图书的活动还在继续,朋友们请加紧时间点击 参与一下》,不要错过哦!
算术操作

在处理 excel 表格数据时,经常会用到公式来对数据执行统计。那么自动化怎么统计呢?
直接把计算公式赋值给输出结果的单元格 cell,下面试一下计算区域数据的和
  1. import openpyxl
  2. workbook = openpyxl.Workbook()
  3. sheet = workbook.active
  4. sheet['A1'] = 100
  5. sheet['A2'] = 200
  6. sheet['A3'] = 300
  7. sheet['A4'] = 400
  8. sheet['A5'] = 500
  9. sheet['A7'] = '= SUM(A1:A5)'
  10. workbook.save("sum.xlsx")
复制代码
看看实际效果

调整行高和列宽

很多时候也需要对存储某些信息量的行列进行宽高调整,那么每个都要手动拖动拉伸就很令人苦恼了。这里介绍如何自动化设置行高和列宽。利用到修改单元格 cell 的属性 height 和属性 width 的值。
下面举个例子
  1. import openpyxl
  2.   
  3. workbook = openpyxl.load_workbook("test.xlsx")
  4. sheet = workbook.active
  5. sheet.row_dimensions[6].height = 70
  6. sheet.column_dimensions['C'].width = 20
  7.   
  8. workbook.save('test.xlsx')
复制代码
看看实际效果

这就是简单的调整行高和列宽,会影响到同一行或列的所有单元格。
合并单元格

有些表格中,部分区域的单元格可以作为同一个单元格使用,那么就可以对其执行合并操作了。
合并操作通过表格 sheet 的 merge_cells() 方法实现,下面看看代码
  1. import openpyxl
  2.   
  3. workbook = openpyxl.load_workbook("test.xlsx")
  4. sheet = workbook.active
  5. sheet.merge_cells("B2:C4")
  6.   
  7. workbook.save('test.xlsx')
复制代码
看看实际效果

可以看到原来区域 B2:C4 中都是分离的单元格,现在合并成一个单独的单元格了。
拆分单元格

和合并单元格相对的,也有需要对单元格拆分的时候。拆分单元格使用的是表格 sheet 的 unmerge_cells() 方法。
再对上面的表格中被合并的单元格执行拆分处理
  1. import openpyxl
  2.   
  3. workbook = openpyxl.load_workbook("test.xlsx")
  4. sheet = workbook.active
  5. sheet.unmerge_cells("B2:C4")
  6.   
  7. workbook.save('test.xlsx')
复制代码
看看实际效果

现在又变回合并前的样子了
设置字体

同样的,表格里的有些字体也是可能需要特别设置,对于查阅内容比较有帮助。可以通过 openpyxl 的 styles 模块的 Font() 方法执行配置。
下面试一下,把单元格 A1 的内容设置为字体大小 24,粗体,italic,字体名字为 ‘Times New Roman’
  1. import openpyxl
  2. from openpyxl.styles import Font
  3.   
  4. workbook = openpyxl.load_workbook("test.xlsx")
  5. sheet = workbook.active
  6. sheet.cell(row = 1,
  7.             column = 1).font = Font(size = 24,
  8.                                     italic = True,
  9.                                     bold = True,
  10.                                     name = 'Times New Roman')
  11.   
  12. workbook.save('test.xlsx')
复制代码
看看实际效果

绘图表

为了让 excel 表格里的内容更加便于理解,离不开数据的可视化,excel 就提供了绘制图表的功能来体现数据可视化。表格中数据和绘制的图表关联之后,数据的变更也会自动同步到图表中。
现在就介绍用到自动化的方式来绘制图表,举个栗子,现在表格里插入一列数据,然后用 Reference() 选中表格中的数据域,创建柱状图表并关联刚选中的数据域,设置表头、xy轴标签,再生成图表,最后把工作簿保存到文件 sample.xlsx。
  1. import openpyxl
  2. from openpyxl.chart import BarChart
  3. from openpyxl.chart import Reference
  4. workbook = openpyxl.Workbook()
  5. sheet = workbook.active
  6. # 插入数据到表格 sheet
  7. for i in range(10):
  8.         sheet.append([i])
  9. # 选中表格的数据域
  10. values = Reference(sheet,
  11.                     min_col = 1,
  12.                     min_row = 1,
  13.                     max_col = 1,
  14.                     max_row = 10)
  15. # 创建柱状图表
  16. chart = BarChart()
  17. # 关联数据域到图表
  18. chart.add_data(values)
  19. # 设置图表表头
  20. chart.title = " 实例图标 "
  21. chart.x_axis.title = " X 轴 "
  22. chart.y_axis.title = " Y 轴 "
  23. # 生成图表,并贴到单元格 C2
  24. sheet.add_chart(chart, "C2")
  25. workbook.save("sample.xlsx")
复制代码
看看实际效果

当然,除了可以生成柱状图,还可以生成饼状图、线状图等等,这里不展开了。
图片操作

有些时候也需要往 excel 表格里插入图片,那么可以使用 openpyxl.drawing.image.Image 来实现。
由于 openpyxl.drawing.image.Image 依赖于第三方模块 pillow,所以在执行调试环境里还需要安装库 pillow。前面已经安装,这里略过。
试一下把下面的图插入新建的 excel 表格里
  1. import openpyxl
  2. from openpyxl.drawing.image import Image
  3. workbook = openpyxl.Workbook()
  4. sheet = workbook.active
  5. img = Image("beauty.jpg")
  6. sheet.add_image(img, 'B2')
  7. workbook.save("img.xlsx")
复制代码
看看实际效果

《Python:Excel自动化实践入门篇》的介绍就到此结束了。由于篇幅受限,本系列教程分成了下面几个部分,有兴趣的朋友可点击跳转查阅
《Python:Excel自动化实践入门篇 甲》
《Python:Excel自动化实践入门篇 乙》

来源:https://www.cnblogs.com/englyf/p/17166664.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具