xlsxwriter 学习笔记之工作簿类
xlsxwriter是python中操作excel的非常全面高效的库。它可以帮助我们高效快速,大批量的,自动化的操作excel,可以帮助我们进行写入操作,可以写数据,画图能完成大部分常用的excel操作,如果想要读取excel则需要另一个库xlrd。对于日常进行大量的excel的数据分析和处理工作的人来说,这个库可以帮助我们减少大量的重复性工作,实现自动化。有了这个库,python就可以在一些工作上替代VBA,让我们的办公工具更加单一简单。因为公司需要,本人开始学习了解。
Workbook类是XlsxWriter模块公开的主类,下面学习包括:将新工作表添加到工作簿,创建图表对象到工作簿,设置文档属性,得到工作簿中的工作表对象列表。
1.工作簿对象
import xlsxwriter
workbook = xlsxwriter.Workbook('filename.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write(0, 0, 'Hello Excel')
# 记得要关闭工作簿哦
workbook.close()
工作簿对象有很多参数,有些可能不太常用,所以就先学习下面的这些参数。
strings_to_numbers:write()尽可能使用的方法将字符串转换为数字,float()
以避免Excel警告“存储为文本的数字”。默认是False
。
workbook = xlsxwriter.Workbook(filename, {'strings_to_numbers': True})
strings_to_formulas:write()将字符串转换为公式的方法。默认是True
。要禁用此选项,请使用:
workbook = xlsxwriter.Workbook(filename, {'strings_to_formulas': False})
strings_to_urls:write()将字符串转换为url的方法。默认是True
。要禁用此选项,请使用:
workbook = xlsxwriter.Workbook(filename, {'strings_to_urls': False})
nan_inf_to_errors:write()和write_number()方法,将nan
,inf和
-inf认为是
Excel错误。Excel不处理NAN / INF的号码,因为它们映射到产生错误码公式解决方法#NUM!
和#DIV/0!
。默认是False
。要启用此选项,请使用:
workbook = xlsxwriter.Workbook(filename, {'nan_inf_to_errors': True})
default_date_format:write_datetime()未给出显式格式时的方法。
xlsxwriter.Workbook(filename, {'default_date_format': 'dd/mm/yy'})
2.将新工作表添加到工作簿。
该add_worksheet()
方法将新工作表添加到工作簿。应将至少一个工作表添加到新工作簿中。
worksheet1 = workbook.add_worksheet() # Sheet1
worksheet2 = workbook.add_worksheet('Foglio2') # Foglio2
worksheet3 = workbook.add_worksheet('Data') # Data
worksheet4 = workbook.add_worksheet() # Sheet4
workbook可以创建单元格的格式对象,方便指定单元格的格式
# workbook可以创建单元格的格式对象,方便指定单元格的格式
format1 = workbook.add_format(props)
format2 = workbook.add_format()
3.创建图表对象到工作簿。
workbook.add_chart()
这样我们就可以用python操作excel进行画图了,库提供了area,bar,column,doughnut,line,pie,radar,scatter,stock这些图表样式可供我们选择。
chart = workbook.add_chart({'type': 'column'})
# subtype 用于定义可用的图表子类型:
workbook.add_chart({'type': 'bar', 'subtype': 'stacked'})
# 将新的add_chartsheet添加到工作簿。该sheetname参数是可选的。如果未指定,则将遵循默认的Excel约定,即Chart1,Chart2等
workbook.add_chartsheet([sheetname])
图表只能插入工作表一次。如果需要几个类似的图表,则必须分别创建每个图表 add_chart()
。
4.设置文档属性
workbook.set_properties()
属性都是可选的,应以字典格式传递,如下所示:
workbook.set_properties({
'title': 'This is an example spreadsheet',
'subject': 'With document properties',
'author': 'John McNamara',
'manager': 'Dr. Heinz Doofenshmirtz',
'company': 'of Wolves',
'category': 'Example spreadsheets',
'keywords': 'Sample, Example, Properties',
'created': datetime.date(2018, 1, 1),
'comments': 'Created with Python and XlsxWriter'})
5.得到工作簿中的工作表对象列表
workbook.worksheets()
返回工作簿中的工作表列表。如果要在工作簿中的每个工作表上重复操作,这个方法非常有用。
workbook.get_worksheet_by_name()
通过工作表的名字得到工作簿中的工作表对象。
for worksheet in workbook.worksheets():
worksheet.write('A1', 'Hello')
worksheet = workbook.get_worksheet_by_name('Sheet1')