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

python,excel,自动化,实践,入门篇,图书,活动,继续 · 浏览次数 : 334

小编点评

**原文链接:** 微信公众号「englyf」 **摘要:** 文章介绍如何使用 openpyxl 库来自动化统计和图表生成,并分享如何设置行高和列宽、合并单元格和拆分单元格等操作的相关知识。最后,还介绍如何插入图片到 Excel 表格中。 **主要内容:** * **统计**:直接将计算公式赋值给输出结果的单元格 cell。 * **设置行高和列宽**:利用属性 height 和属性 width 的值设置行高和列宽。 * **合并单元格**:通过表格 sheet 的 merge_cells() 方法实现。 * **拆分单元格**:利用表格 sheet 的 unmerge_cells() 方法进行拆分。 * **配置字体**:使用 Font() 方法配置单元格的字体属性。 * **绘制图表**:使用 openpyxl.chart 库生成柱状、饼状图、线状图等图表。 * **插入图片**:使用 openpyxl.drawing.image.Image 类插入图片到 Excel 表格中。 **结论:** 文章展示了如何使用 openpyxl 库实现自动统计、图表生成和图片插入等操作,可以帮助用户更有效地处理 Excel 表格数据。

正文

*以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「englyf」https://mp.weixin.qq.com/s/y-npGelPJwmx3iNvHaXRTg


本文上接《Python:Excel自动化实践入门篇 甲》


正文开始之前,提醒一下朋友们,送图书的活动还在继续,朋友们请加紧时间点击 参与一下》,不要错过哦!


算术操作

在处理 excel 表格数据时,经常会用到公式来对数据执行统计。那么自动化怎么统计呢?

直接把计算公式赋值给输出结果的单元格 cell,下面试一下计算区域数据的和

import openpyxl

workbook = openpyxl.Workbook()
sheet = workbook.active

sheet['A1'] = 100
sheet['A2'] = 200
sheet['A3'] = 300
sheet['A4'] = 400
sheet['A5'] = 500

sheet['A7'] = '= SUM(A1:A5)'

workbook.save("sum.xlsx")

看看实际效果

调整行高和列宽

很多时候也需要对存储某些信息量的行列进行宽高调整,那么每个都要手动拖动拉伸就很令人苦恼了。这里介绍如何自动化设置行高和列宽。利用到修改单元格 cell 的属性 height 和属性 width 的值。

下面举个例子

import openpyxl
  
workbook = openpyxl.load_workbook("test.xlsx")
sheet = workbook.active

sheet.row_dimensions[6].height = 70
sheet.column_dimensions['C'].width = 20
  
workbook.save('test.xlsx')

看看实际效果

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

合并单元格

有些表格中,部分区域的单元格可以作为同一个单元格使用,那么就可以对其执行合并操作了。

合并操作通过表格 sheet 的 merge_cells() 方法实现,下面看看代码

import openpyxl
  
workbook = openpyxl.load_workbook("test.xlsx")
sheet = workbook.active
sheet.merge_cells("B2:C4")
  
workbook.save('test.xlsx')

看看实际效果

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

拆分单元格

和合并单元格相对的,也有需要对单元格拆分的时候。拆分单元格使用的是表格 sheet 的 unmerge_cells() 方法。

再对上面的表格中被合并的单元格执行拆分处理

import openpyxl
  
workbook = openpyxl.load_workbook("test.xlsx")
sheet = workbook.active
sheet.unmerge_cells("B2:C4")
  
workbook.save('test.xlsx')

看看实际效果

现在又变回合并前的样子了

设置字体

同样的,表格里的有些字体也是可能需要特别设置,对于查阅内容比较有帮助。可以通过 openpyxl 的 styles 模块的 Font() 方法执行配置。

下面试一下,把单元格 A1 的内容设置为字体大小 24,粗体,italic,字体名字为 ‘Times New Roman’

import openpyxl
from openpyxl.styles import Font
  
workbook = openpyxl.load_workbook("test.xlsx")
sheet = workbook.active

sheet.cell(row = 1,
            column = 1).font = Font(size = 24,
                                    italic = True,
                                    bold = True,
                                    name = 'Times New Roman')
  
workbook.save('test.xlsx')

看看实际效果

绘图表

为了让 excel 表格里的内容更加便于理解,离不开数据的可视化,excel 就提供了绘制图表的功能来体现数据可视化。表格中数据和绘制的图表关联之后,数据的变更也会自动同步到图表中。

现在就介绍用到自动化的方式来绘制图表,举个栗子,现在表格里插入一列数据,然后用 Reference() 选中表格中的数据域,创建柱状图表并关联刚选中的数据域,设置表头、xy轴标签,再生成图表,最后把工作簿保存到文件 sample.xlsx。

import openpyxl
from openpyxl.chart import BarChart
from openpyxl.chart import Reference

workbook = openpyxl.Workbook()
sheet = workbook.active

# 插入数据到表格 sheet
for i in range(10):
	sheet.append([i])
# 选中表格的数据域
values = Reference(sheet,
                    min_col = 1,
                    min_row = 1,
                    max_col = 1,
                    max_row = 10)

# 创建柱状图表
chart = BarChart()
# 关联数据域到图表
chart.add_data(values)
# 设置图表表头
chart.title = " 实例图标 "
chart.x_axis.title = " X 轴 "
chart.y_axis.title = " Y 轴 "
# 生成图表,并贴到单元格 C2
sheet.add_chart(chart, "C2")

workbook.save("sample.xlsx")

看看实际效果

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

图片操作

有些时候也需要往 excel 表格里插入图片,那么可以使用 openpyxl.drawing.image.Image 来实现。

由于 openpyxl.drawing.image.Image 依赖于第三方模块 pillow,所以在执行调试环境里还需要安装库 pillow。前面已经安装,这里略过。

试一下把下面的图插入新建的 excel 表格里

import openpyxl
from openpyxl.drawing.image import Image

workbook = openpyxl.Workbook()
sheet = workbook.active

img = Image("beauty.jpg")
sheet.add_image(img, 'B2')

workbook.save("img.xlsx")

看看实际效果


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

《Python:Excel自动化实践入门篇 甲》

《Python:Excel自动化实践入门篇 乙》

与Python:Excel自动化实践入门篇 乙【送图书活动继续】相似的内容:

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

这是《Python:Excel自动化实践入门篇》第二篇,上一篇的送图书活动还在继续,朋友们快来留言领取!

Python:Excel自动化实践入门篇 甲【留言点赞领图书门票】

说起办公自动化就离不开对excel表格的处理,现在哪个办公族不得每天面对着几份excel过日本子?

造个Python轮子,实现根据Excel生成Model和数据导入脚本

前言 最近遇到一个需求,有几十个Excel,每个的字段都不一样,然后都差不多是第一行是表头,后面几千上万的数据,需要把这些Excel中的数据全都加入某个已经上线的Django项目 这就需要每个Excel建个表,然后一个个导入了 这样的效率太低,不能忍 所以我造了个自动生成 Model 和导入脚本的轮

在 Excel 中使用 Python 自动填充公式

安转Python包的国内镜像源 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple 阿里云 https://mirrors.aliyun.com/pypi/simple/ 豆瓣 https://pypi.douban.com/simple/ 百度云 https

Python 将Word/ Exce/ PDF/ PPT文档转为OFD文档

OFD(Open Fixed-layout Document )是我国自主制定的一种开放版式文件格式标准。OFD文档具有不易被篡改、格式独立、版式固定等特点,目前常用于政府公文、金融、电子发票等领域。 如果想要通过Python将Office文档(如Word、Excel或PowerPoint)及PDF

Python 潮流周刊#52:Python 处理 Excel 的资源

本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 本期周刊分享了 12 篇文章,12 个开源项目,赠书 5 本《网络是怎样连接的》,

Python导入Excel表格数据并以字典dict格式保存

本文介绍基于Python语言,将一个Excel表格文件中的数据导入到Python中,并将其通过字典格式来存储的方法~

数据分析er看过来,五款工具有你需要的

“我想转行做数据分析,但是我只会用Excel,不会其他的工具,有其他的数据分析工具推荐么?“ “我不会python,那我可以做数据分析吗” 大部分人对数据分析的的第一印象就是Excel,python,其实选择一个工具开始学习是需要花费学习成本的,如果不清楚这款工具能给你带来什么价值,就开始盲目学习,

Python读取大量Excel文件并跨文件批量计算平均值

本文介绍基于Python语言,实现对多个不同Excel文件进行数据读取与平均值计算的方法~

Python按条件筛选、剔除表格数据并绘制剔除前后的直方图

本文介绍基于Python语言,读取Excel表格文件数据,以其中某一列数据的值为标准,对于这一列数据处于指定范围的所有行,再用其他几列数据的数值,加以数据筛选与剔除;同时,对筛选前、后的数据分别绘制若干直方图,并将结果数据导出保存为一个新的Excel表格文件的方法~