Workbook类
定义:Workbook(filename[,options])
该类创建一个XlsxWriter的Workbook对象。Workbook代表整个电子表格文件,并且存储在磁盘上。filename为字符串类型,表示创建的excel文件存储路径;
方法:
add_worksheet
用于添加一个新的工作表,sheetname为工作表名称,默认是sheet1
worksheet1 = workbook.add_worksheet() #sheet1
worksheet2 = workbook.add_worksheet('test') #test
worksheet3 = workbook.add_worksheet('data') #data
worksheet4 = workbook.add_worksheet() #sheet4
add_format
add_format([properties])方法,用于在工作表中创建一个新的格式对象来格式化单元格。
bold = workbook.add_format({'bold': True})
等价的语句如下:
bold = workbook.add_format()
bold.set_bold()
add_chart
add_chart(options)方法,用于在工作表中创建一个图表对象,内部是通过insert_chart()方法来实现的,参数为dict类型,是为图标指定一个字典属性。
例如设置一个线条行的图表对象,代码如下:
chart = workbook.add_chart({'type': 'line'})
close
close()方法,作用是关闭工作表文件,如:
workbook.close()
Worksheet类
代表一个excel工作表,是比较核心的一个类。Worksheet对象不能直接实例化,而是通过Workbook对象调用add_worksheet()方法来创建,常见的方法如下:
方法:
write
row:行坐标;
col:列坐标;
坐标索引起始值为0
*args:无名字参数为数据内容,可为数字,公式,字符串或格式对象。
为了简化不同数据类型的写入过程,write方法已作为其他更加具体的数据类型方法的别名,如:
write.string():写入字符串类型数据
wirte_number():写入数字型数据
write_blank():写入空类型数据
write_formula():写入公式型数据
write_datetime():写入日期型数据
wirte_boolean():写入逻辑型数据
write_url():写入超链接型数据
Demo
# -*- coding:utf-8 -*-
# @Time : 2018/12/4 18:18
# @Author : Wangxiao
# @FileName: xls.py
import xlsxwriter
# #新建excel表
workbook = xlsxwriter.Workbook('D:/hello.xlsx')
#新建sheet(sheet的名称为"sheet1")
worksheet = workbook.add_worksheet()
# 定义表头内容
Title = ['实例ID', '实例配置', '实例名', '地域', '安全组', 'EIP']
# 定义标题格式
merge_format = workbook.add_format({
'bold': True,
'border': 1,
'align' : 'center',
'valign': 'vcenter',
'fg_color' : '#E0FFFF'
})
# 定义表头格式
title_format = workbook.add_format({
'bold': True,
'border': 1,
'align': 'center',
'valign': 'vcenter',
'fg_color': '#87CEFF'
})
# 定义内容格式
data_format = workbook.add_format({
'border': 1,
'align': 'center',
'valign': 'vcenter',
'fg_color': '#EED8AE'
})
# 拟数据
data = [['i-1','1C1G','demo1','ap-shanghai','sg-1','172.20.2.10'],
['i-2','1C1G','demo2','ap-shanghai','sg-2','172.20.2.11'],
['i-3','1C1G','demo3','ap-shanghai','sg-3','172.20.2.12']]
# 合并 A1 - F1 单元格作为标题,传入参数:1:合并单元格,2:标题文字,3:标题格式
worksheet.merge_range('A1:F1','ECS信息表',merge_format)
# 设置列宽,指定 A - F 的列宽为 25
worksheet.set_column('A:F',25)
# 设置行号,指定行数,高度,A1 为 0,A2 为 1,以此类推
worksheet.set_row(0,60)
# write_row ,写行,传入参数:1:行,2:内容,3:格式
worksheet.write_row('A2',Title,title_format)
i = 3
for ECS in data:
worksheet.write_row('A' + str(i),ECS,data_format)
i += 1
# 将excel文件保存关闭,如果没有这一行运行代码会报错
workbook.close()