XlsxWriter模块常用方法

3,329 views次阅读
2条评论

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

 

Honest1y
版权声明:本站原创文章,由Honest1y于2018年12月05日发表,共计3258字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(2条评论)
头像
RockyWen 评论达人LV.1
2018-12-31 13:56:41 回复

我是你儿子

    Clannad
    Clannad 博主
    2019-01-02 12:13:28 回复

    @RockyWen 你非要认我那我只能勉强收下你这个傻儿子了