xlsxwriter是python中操作excel的非常全面高效的库。它可以帮助我们高效快速,大批量的,自动化的操作excel,可以帮助我们进行写入操作,可以写数据,画图能完成大部分常用的excel操作,如果想要读取excel则需要另一个库xlrd。对于日常进行大量的excel的数据分析和处理工作的人来说,这个库可以帮助我们减少大量的重复性工作,实现自动化。有了这个库,python就可以在一些工作上替代VBA,让我们的办公工具更加单一简单。因为公司需要,本人开始学习了解。
工作表类表示Excel工作表。它处理诸如将数据写入单元格或格式化工作表布局等操作。
workbook = xlsxwriter.Workbook('filename.xlsx')
worksheet1 = workbook.add_worksheet()
worksheet2 = workbook.add_worksheet()
worksheet1.write('A1', 123)
workbook.close()
参数: |
|
---|---|
返回: | 0:成功。 |
返回: | -1:行或列超出工作表范围。 |
返回: | 来自被调用的write方法的其他值。 |
Excel区分数据类型,如字符串,数字,空格,公式和超链接。为了简化将数据写入XlsxWriter文件的过程,该write()
方法充当几个更具体方法的常规别名:
worksheet.write(0, 0, 'Hello') # write_string()
worksheet.write(1, 0, 'World') # write_string()
worksheet.write(2, 0, 2) # write_number()
worksheet.write(3, 0, 3.00001) # write_number()
worksheet.write(4, 0, '=SIN(PI()/4)') # write_formula()
worksheet.write(5, 0, '') # write_blank()
worksheet.write(6, 0, None) # write_blank()
注意:该workbook()构造选项将可用于替代字符串处理三个可选参数write()
的功能。这些选项如下所示,其默认值如下:
# 写入数据的格式问题,例如excel写入字符串格式的数字会出错,这时就可以指定格式,还有公式和url。
xlsxwriter.Workbook(filename, {'strings_to_numbers': False,
'strings_to_formulas': True,
'strings_to_urls': True})
# 同时可以添加单元格的格式
cell_format = workbook.add_format({'bold': True, 'italic': True})
worksheet.write(0, 0, 'Hello', cell_format) # 加粗和倾斜
同时也提供了其他的几种具体的写入方式
# 支持两种写入方式,数字定位和excel定位
worksheet.write_string(0, 0, 'Your text here')
worksheet.write_string('A2', 'or here')
# 不支持NAN和INF,并且会引发TypeError异常。
worksheet.write_number(0, 0, 123456)
worksheet.write_number('A2', 2.3451)
worksheet.write_formula(0, 0, '=B3 + B4')
worksheet.write_formula(1, 0, '=SIN(PI()/4)')
worksheet.write_formula(2, 0, '=SUM(B1:B5)')
worksheet.write_formula('A4', '=IF(A3>1,"Yes", "No")')
worksheet.write_formula('A5', '=AVERAGE(1, 2, 3, 4)')
worksheet.write_formula('A6', '=DATEVALUE("1-Jan-2013")')
# 也支持数组的方式
worksheet.write_formula('A7', '{=SUM(A1:B1*A2:B2)}')
#Excel 2010和2013添加了未在原始文件规范中定义的函数。这些功能称为未来功能。这些功能的例子是#ACOT,CHISQ.DIST.RT,CONFIDENCE.NORM, STDEV.P,STDEV.S和WORKDAY.INTL。在XlsxWriter中,这#些需要一个前缀:
worksheet.write_formula('A1', '=_xlfn.STDEV.S(B1:B10)')
write_array_formula()
将数组公式写入工作表单元格。
参数: |
|
---|---|
返回: | 0:成功。 |
返回: | -1:行或列超出工作表范围。 |
worksheet.write_array_formula(0, 0, 2, 0, '{=TREND(C1:C3,B1:B3)}')
worksheet.write_array_formula('A1:A3', '{=TREND(C1:C3,B1:B3)}')
worksheet.write_blank(0, 0, None, cell_format)
worksheet.write_blank('A2', None, cell_format)
worksheet.write_boolean(0, 0, True)
worksheet.write_boolean('A2', False)
# datetime要是datetime.datetime,.date,.time或.delta对象。
worksheet.write_datetime(0, 0, datetime, date_format)
worksheet.write_datetime('A2', datetime, date_format)
date_time = datetime.datetime.strptime('2013-01-23', '%Y-%m-%d')
date_format = workbook.add_format({'num_format': 'd mmmm yyyy'})
worksheet.write_datetime('A1', date_time, date_format)
worksheet.write_url('A1', 'ftp://www.python.org/')
worksheet.write_url('A2', 'https://www.python.org/')
worksheet.write_url('A3', 'mailto:[email protected]')
# 也可以编写具有多种格式的字符串,最后一个参数用作单元格格式(如果它是格式对象)来执行此操作。
bold = workbook.add_format({'bold': True})
center = workbook.add_format({'align': 'center'})
worksheet.write_rich_string('A5',
'Some ',
bold, 'bold text',
' centered',
center)
从(row,col)开始写一行数据。
参数: |
|
---|---|
返回: | 0:成功。 |
返回: | 其他:方法的错误返回值 |
从(row,col)开始写一列数据。
参数: |
|
---|---|
返回: | 0:成功。 |
返回: | 其他:方法的错误返回值 |
worksheet.write_row(0, 0, data)
worksheet.write_row('A1', data)
worksheet.write_column(0, 0, data)
worksheet.write_column('A1', data)
# 设置行高,默认行高15
worksheet.set_row(1, None, cell_format)
worksheet.set_row(1, 15, cell_format)