python打开excel⽂件画散点图_Python帮你做Excel——格式
设置与画图
之前两篇⽂章已经向⼤家讲解了如何利⽤python读取和写⼊数据,本次就向⼤家介绍⼀下如何使⽤openpyxl对excel⽂件进⾏设置,以及
如何在excel⽂件中绘制图表。
设置字体
使⽤python对excel⽂件进⾏操作,可以对其设置不同的字体样式,强调突出某些特定⾏或列等等。利⽤openpyxl,写上短短⼏⾏代码,就可以⾃动定制和更改数百万⾏的数据的样式了。
⾸先,让我们导⼊openpyxl模块,并且导⼊模块中的Font和Style函数。下述代码将会展⽰,如何新建⼀个excel⼯作簿,并且将F6单元格的字体⼤⼩设置为32,字体为斜体。
>>> import openpyxl
>>> from openpyxl.styles import Font, Style
>>> mywb = openpyxl.Workbook()
>>> mysheet = _sheet_by_name('Sheet')
>>> italic32Font = Font(size=32, italic=True)
>>> sobj = Style(font=italic24Font)
>>> mysheet['F6'].style = sobj
>>> mysheet['F6'] = 'Applying Styles!'
>>> mywb.save('Appliedstyle.xlsx')
在openpyxl模块中,每个单元格都有⼀个样式对象,这个样式对象⽤于存储在单元格的样式.style属性中。因此,我们需要创建⼀个样式对象,并将其指定给⼀个具体的单元格。
>>> sobj = Style(font=italic24Font)
很显然,Style()函数就是⽤来⽣成样式对象的,它需要将字体对象当作参数输⼊
>>> italic32Font = Font(size=32, italic=True)
字体对象有四个参数可供输⼊:Name:输⼊⼀个字符串,引⽤字体名称,⽐如'Arial'
Size:输⼊⼀个代表字体⼤⼩的整数值
Bold:输⼊⼀个布尔值,True代表字体需要加粗
Italic:输⼊⼀个布尔值,True代表字体为斜体
在上⾯的代码当中,我们使⽤了Font()函数建⽴了⼀个字体对象并赋值给了italic32Font变量,然后将其作为参数输⼊给Style()函数。接下来我们来看⼀个更完整的例⼦,你可以选择跟着这个例⼦完整地操作⼀次。
>>> import openpyxl
>>> from openpyxl.styles import Font, Style
>>> mywb = openpyxl.Workbook()
>>> mysheet = _sheet_by_name('Sheet')
>>> firstFontObj = Font(name='Arial', bold=True)
>>> firstStyleObj = Style(font=firstFontObj)
>>> mysheet['F6'].style = firstStyleObj
>>> mysheet['F6'] = 'Bold Arial'
>>> secondFontObj = Font(size=32, italic=True)
>>> secondStyleObj = Style(font=secondFontObj)
>>> mysheet['D7'].style = secondStyleObj
>>> mysheet['D7'] = '32 pt Italic'
>>> mywb.save('ApplicationofStyles.xlsx')
调整⾏⾼列宽
我们可以使⽤openpyxl设置⾏⾼和列宽,还可以将某⾏或某列隐藏。详见下⾯的代码⽰例
>>> import openpyxl
>>> mywb = openpyxl.Workbook()
>>> mysheet = mywb.active
>>> mysheet['F6'] = 'Tall row'
>>> mysheet['D7'] = 'Wide column'
>>> w_dimensions[3].height = 65
>>> lumn_dimensions['F'].width = 25
>>> mywb.save('Heightandwidth.xlsx')
从上述代码中不难看出,.row_dimensions⽅法和.column_dimensions⽅法是将选中需要调整的⾏和列作为参数输⼊,后⾯紧跟
的.height和.width属性是⽤来保存⾏⾼和列宽的值。excel⼯作表中默认的⾏⾼值为12.75'点',其中⼀个'点'代表1/72英⼨。你可以在0-409的范围内设置想要的⾏⾼,类似的,也可以在0-255范围内设置列宽。
⾏⾼和列宽都可以设置为整数或⼩数,想要隐藏某⾏或某列的⽅法也⾮常简单,只需将该⾏或列的⾼和宽设置成0即可⾃动隐藏。
单元格合并与取消合并
我们还可以使⽤openpyxl合并和取消合并单元格。⾸先让我们尝试合并单元格的操作,具体的代码应该是这个样⼦的
>>> import openpyxl
>>>my wb = openpyxl.Workbook()
>>> mysheet = mywb.active
>>> _cells('B2:D3')
>>> mysheet['A1'] = 'cells merged together.'
>>> _cells('F6:F7')
>>> mysheet['G5'] = 'Two merged cells.'
>>> mywb.save('Mergingcells.xlsx')
仍然⾮常简单,只需调⽤.merge_cells⽅法,将两个单元格的地址作为参数输⼊即可。第⼀个输⼊的单元格地址应为左上⾓的单元格,第⼆个单元格应为右下⾓,那么中间的矩形区域即为合并区域。
那么重点来了,如果我们想对合并区域进⾏赋值,该如何操作呢?openpyxl规定,对合并区域的左上⾓单元格进⾏赋值,即.merge_cells ⽅法中的第⼀个输⼊的单元格地址进⾏赋值即可。
现在让我们来尝试⼀下取消合并单元格,看下⾯的例⼦
>>> import openpyxl
>>> mywb = openpyxl.load_workbook('Mergingcells.xlsx')
>>> mysheet = mywb.active
>>> mysheet.unmerge_cells('B2:D3')
>>> mysheet.unmerge_cells('F6:F7')
>>> mywb.save('unmerged.xlsx')
可以看到,操作与合并单元格⾮常类似,调⽤.unmerge_cells⽅法,将合并区域左上⾓与右下⾓的单元格地址输⼊就可以取消合并了。
绘制Excel图表
openpyxl模块⽀持利⽤⼯作表中数据创建各种常⽤类型的图表,如柱状图、折线图、散点图和饼状图。使⽤openpyxl创建excel图表的步骤很简单,总结如下在使⽤矩形框选取要作图的单元格前,必须保证对象已经创建
将选取的对象转化并创建成序列对象
创建⼀个图表对象
将步骤2中创建的序列对象附加到步骤3中创建的图表对象中
设置图表顶部、左侧的位置,以及图表的宽度和⾼度
将图表对象添加到⼯作表对象中
这样看起来有些抽象,让我们来看⼀个实际的例⼦帮助理解
>>> import openpyxl
>>> chartwb = openpyxl.Workbook()
>>> sheet = _active_sheet()
>>> for x in range(1, 10):
sheet['A' + str(i)] = i
>>> referenceobj = openpyxl.charts.Reference(sheet, (1, 1), (10, 1))
>>> serObj = openpyxl.charts.Series(referenceObj, title='Chart Series')
>>> chartObject = openpyxl.charts.BarChart()
>>> chartObject.append(serObj)
>>> p = 50
python怎么读入excel>>> chartObject.drawing.left = 100
>>> chartObject.drawing.width = 300
>>> chartObject.drawing.height = 200
>>> sheet.add_chart(chartObject)
>>> chartwb.save('example.xlsx')
上⾯的例⼦给⼤家展⽰了如何绘制⼀个柱状图,当然⽤openpyxl来绘制折线图,散点图,饼状图也都是不在话下的。创建过程与上述例⼦也⾮常类似,使⽤Openpyxl.charts.LineChart(),Openpyxl.charts.ScatterChart()和Openpyxl.charts.PieChart()即可创建折线图,散点图,饼状图了。
所以,通过创建引⽤对象和openpyxl函数,我们可以使⽤python在excel⽂件中创建⼤多数类型的图表。当然,我们根本不需要打开excel
软件。
插⼊与删除⾏和列
在2.5.0版本之后的openpyxl有了⼀个新的实⽤性很强的功能,那就是插⼊与删除⾏和列。这个功能可
以让⼤家在使⽤python做excel⽂件的时候,不⽤事先将⽂件中的⾏列数都算好,⽽是可以根据数据的改变动态地⾃动修改excel⽂件的版⾯设计。
插⼊⾏和列的操作⾮常简单,展⽰如下:
>>> sheet.insert_rows(7)
>>> sheet.insert_cols(6)
这样就可以了!我们已经成功在第7⾏插⼊了⼀⾏,在第6列插⼊了1列。注意,插⼊的函数默认只插⼊⼀个新的⾏或列,并且在已经存在的⾏或列之前。
删除⾏和列的⽅法也很简单,就像这样:
>>> sheet.delete_cols(6,3)
>>> sheet.delete_rows(2)
这样就成功删除了F到H列和第2⾏。当使⽤删除函数时,向函数传递的第⼀个参数表⽰需要删除的⾸⾏或⾸列号,第⼆个参数表⽰需要连续删除的⾏或列数量,如果没有第⼆个参数,则默认只删除⼀⾏或⼀列。
那么⾄此,python帮你做excel——openpyxl基础教程已经结束了。相信这三篇教程的内容可以基本覆盖到⽇常的excel操作,已经可以帮你省下不少重复劳动的时间了。未来如果⼤家还有哪些常⽤的操作想要学习,可以写在留⾔区哦!!
下⼀篇⽂章,就会开启⼀个全新的系列教程了。
敬请期待啦!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论