自动化Excel进阶技能之一:添加图片
尽管Excel电子表格中并不经常都是插入图片的,但是添加了图片以及图片里插入里url链接,这还是相当实用的。我们可以用它来做品牌宣传,或者让Excel表格更加个性化。
怎么做?
为了能够使用openpyxl向电子表格加载图片,我们必须安装Pillow。
除此之外,我们还需要准备一张要插入的图片。
我们可以在百度图片搜索pandas,然后在Chrome浏览器下面用“图片助手”的插件抓取png格式的pandas徽标图片,将最终的文件保存为 logo.png,并将这个图片复制到你运行示例的根目录下。
这是你需要将该图片导入到hello_word.xlsx电子表格中的代码:
from openpyxl import load_workbookfrom openpyxl.drawing.image import Image# 我们用一个数据很小的hello_world文件workbook = load_workbook(filename="hello_world.xlsx")sheet = workbook.activelogo = Image("logo.png")# 调整图片大小,免得全屏都是图片logo.height = 150logo.width = 150sheet.add_image(logo, "A3")workbook.save(filename="hello_world_logo.xlsx")
自动化Excel进阶技能之二:创建漂亮的图表
Excel之所以强大,是因为能够绘制各种图表。
Excel图表是一种快速可视化,解释数据的好方法。
Excel内有很多不同的图表类型:柱状图、饼状图、线状图等等。
openpyxl支持所有的Excel图表。
在这里,我列举几个怎么画图表的例子,其余图表类型都是一样,照模画虎就行。
请注意:openpyxl目前不支持的几种图表类型有:Funnel, Gantt, Pareto, Treemap, Waterfall, Map和Sunburst。
对于任何我们想构建的图表,我们都需要定义图表类型。BarChart, LineChart等,再加上用于图表的数据。
在构建图表之前,我们需要定义我们想在图表中看到什么数据的表示。有时,我们可以按原样使用数据集,但其他时候,你需要对数据进行一些清洗规整以获得原始数据之外的信息。
让我们先用一些样本数据建立一个新的工作簿:
from openpyxl import Workbookfrom openpyxl.chart import BarChart, Referenceworkbook = Workbook()sheet = workbook.active# 创建一些虚拟销售数据rows = [ ["Product", "Online", "Store"], [1, 30, 45], [2, 40, 30], [3, 40, 25], [4, 50, 30], [5, 30, 25], [6, 25, 35], [7, 20, 40],]for row in rows: sheet.append(row)
现在我们要开始创建一个显示每个产品销售总数的条形图:
chart = BarChart()data = Reference(worksheet=sheet, min_row=1, max_row=8, min_col=2, max_col=3)chart.add_