python xlsxwriter 学习笔记(四)

xlsxwriter 学习笔记之工作表类

xlsxwriter是python中操作excel的非常全面高效的库。它可以帮助我们高效快速,大批量的,自动化的操作excel,可以帮助我们进行写入操作,可以写数据,画图能完成大部分常用的excel操作,如果想要读取excel则需要另一个库xlrd。对于日常进行大量的excel的数据分析和处理工作的人来说,这个库可以帮助我们减少大量的重复性工作,实现自动化。有了这个库,python就可以在一些工作上替代VBA,让我们的办公工具更加单一简单。因为公司需要,本人开始学习了解。

工作表类表示Excel工作表。它处理诸如将数据写入单元格或格式化工作表布局等操作。

1.创建工作表

workbook   = xlsxwriter.Workbook('filename.xlsx')

worksheet1 = workbook.add_worksheet()
worksheet2 = workbook.add_worksheet()

worksheet1.write('A1', 123)

workbook.close()

2.将数据写入工作表单元格

worksheet.write()

参数:
  • row - 单元格行(零索引)。
  • col - 单元格列(零索引)。
  • * args - 传递给sub方法的附加args,例如number,string和cell_format。
返回:

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()

将数组公式写入工作表单元格。

参数:
  • first_rowint) - 范围的第一行。(所有零索引。)
  • first_colint) - 范围的第一列。
  • last_rowint) - 范围的最后一行。
  • last_colint) - 范围的最后一个col。
  • formulastring) - 要写入单元格的数组公式。
  • cell_formatFormat) - 可选的Format对象。
  • value - 可选结果。计算公式时的值。
返回:

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:jmcnamara@cpan.org')

# 也可以编写具有多种格式的字符串,最后一个参数用作单元格格式(如果它是格式对象)来执行此操作。
bold   = workbook.add_format({'bold': True})
center = workbook.add_format({'align': 'center'})

worksheet.write_rich_string('A5',
                            'Some ',
                            bold, 'bold text',
                            ' centered',
                            center)

3.写入一行数据

worksheet.write_row()

从(row,col)开始写一行数据。

参数:
  • rowint) - 单元格行(零索引)。
  • colint) - 单元格列(零索引)。
  • data - 要写入的单元数据。变量类型。
  • cell_formatFormat) - 可选的Format对象。
返回:

0:成功。

返回:

其他:方法的错误返回值write()

worksheet.write_column()

从(row,col)开始写一列数据。

参数:
  • rowint) - 单元格行(零索引)。
  • colint) - 单元格列(零索引)。
  • data - 要写入的单元数据。变量类型。
  • cell_formatFormat) - 可选的Format对象。
返回:

0:成功。

返回:

其他:方法的错误返回值write()

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)

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值