python中xlsxwriter模块的使用

一、模块的安装

打开cmd输入pip install xlsxwriter安装即可
在这里插入图片描述

二、模块的使用

1、导入模块

import xlsxwriter

2、创建工作簿

创建结束后一定要保存!!workbook.close()

# filename是文件的名称,没有绝对路径就默认创建在此工作目录下
workbook = xlsxwriter.Workbook(filename='新建表格.xlsx')
'''
需要操作的事
'''
# 关闭并保存工作簿
workbook.close()

3、添加sheet表格

注:后面括号带上参数就是sheet名称,不带参数就默认以此创建sheet

# 依次添加sheet
worksheet1 = workbook.add_worksheet()
worksheet2 = workbook.add_worksheet('sheetname')
worksheet3 = workbook.add_worksheet()

执行结果
在这里插入图片描述

三、单元格的操作

1、添加数据(有两种方法)

添加不同的数据有很多种方法,但是可以直接统一使用write添加
行和列都是从0开始数的

①行和列的定位添加

write(row, col, content)
参数解析
row:行
col:列
content:加入的数据或者方法对象

# 向指定的sheet表格中添加数据
worksheet1.write(0, 0, '数据'

②字母数字的添加

write(‘letter_num’, content)
参数解析
letter_num:字母数字
content:加入的数据或者方法对象

# 向指定的sheet表格中添加数据
worksheet1.write('A1', '数据')

两种方法打印的结果都是这个
在这里插入图片描述

补充:部分数据类型

# write_string() 写入字符串类型数据
worksheet1.write_string(0, 0, "text")
# write_number() 写入数字类型数据
worksheet1.write_number(0, 1, 2.345)
# write_blank() 写入空类型数据
worksheet1.write_blank(0, 2, None)
# write_formula() 写入公式类型数据
worksheet1.write_formula(0, 3, "=SUM(B1:B5)")
# write_boolean() 写入逻辑类型数据
worksheet1.write_boolean(0, 4, True)
# write_url() 写入超链接类型数据
worksheet1.write_url(0, 5, "ftp://www.python.org/")
# write_datetime() 写入日期类型数据
worksheet1._write_datetime(0, 6, datetime.datetime.strptime('2018-1-31 10:00:00','%Y-%m-%d %H:%M:%S'),workbook.add_format({'num_format':'yyyy-m-dd'}))

执行结果
在这里插入图片描述

2、单元格的合并(有两种方法)

①坐标定位的合并方式

merge_range(row1, col1, row2, col2, content)
参数解析
row1:起始单元格的行
col1:起始单元格的列
row2:结束单元格的行
col2:结束单元格的列
content:写入数据或方法对象

# 合并单元格
worksheet1.merge_range(0, 0, 5, 2, '数据')

②字母数字的合并方式

merge_range(‘letter_num1:letter_num2’, content)
参数解析
letter_num1:起始单元格
letter_num2:结束单元格
content:写入数据或方法对象

# 合并单元格
worksheet1.merge_range('A1:C6', '数据')

两种合并方式打印出来的结果是一样的
在这里插入图片描述

3、单元格的样式

先在workbook中添加样式,然后在添加数据加上样式一览即可

merge_format = workbook.add_format({
        'bold': True,                  # 字体加粗
        'align': 'center',             # 水平居中
        'valign': 'vcenter',           # 垂直居中
        'border': 1,                   # 单元格边框宽度
        'bg_color': '#F4B084',         # 单元格背景颜色
        'num_format': '0.00',          # 格式化数据格式为小数点后两位
        'font_size': 20,                # 字体大小
        'font_color': 'red'            # 字体颜色
})
worksheet1.write(6, 6, 1.22221, merge_format)
worksheet1.merge_range(0, 0, 5, 2, '数据', merge_format)

打印结果
在这里插入图片描述

4、单元格的列宽和行高

列宽(有两种方法)

①坐标的定位

set_column(col1, col2, num)
参数解析
col1:起始列
col2:结束列
num:设置单元格的列宽

# 设置第1列的列宽为5
worksheet1.set_column(0, 5)
# 设置第2到3列的列宽为10
worksheet1.set_column(1, 2, 10)
# 设置第4到5列的列宽为20
worksheet1.set_column(3, 4, 20)
②字母的定位

set_column(‘letter1:letter2’, num)
参数解析
letter1:起始的字母
letter2:结束的字母
num:列宽

# 设置第A列的列宽为5
worksheet1.set_column('A:A', 5)
# 设置第B到C列的列宽为10
worksheet1.set_column('B:C', 10)
# 设置第D到F列的列宽为20
worksheet1.set_column('D:F', 20)

打印结果
在这里插入图片描述

行高

set_row(row, num)
参数解析
row:行
num:设置单元格的行高

# 设置第一行的行高为20
worksheet1.set_row(0, 20)
# 设置第二行的行高为20
worksheet1.set_row(1, 50)

打印结果
在这里插入图片描述

五、案例

创建xlsx表格,并创建名为’礼包’的sheet表格,在为礼包sheet中添加如下格式的数据(数据自拟,这是案例的数据,作为实战参考)在这里插入图片描述

import xlsxwriter

# 在指定目录下创建一个xlsx文件
workbook = xlsxwriter.Workbook(r'C:\Users\Windows10\Desktop\新建表格.xlsx')
# 添加一个为礼包的sheet表格
worksheet = workbook.add_worksheet('礼包')
merge_format1 = workbook.add_format({
        'align': 'center',             # 水平居中
        'valign': 'vcenter',           # 垂直居中
})
merge_format2 = workbook.add_format({
        'bg_color': 'red',             # 背景颜色为红色
        'align': 'center',             # 水平居中
        'valign': 'vcenter',           # 垂直居中
})
merge_format3 = workbook.add_format({
        'font_color': 'red',           # 字体设置为红色
        'align': 'center',             # 水平居中
        'valign': 'vcenter',           # 垂直居中
})
merge_format4 = workbook.add_format({
        'font_color': 'blue',          # 字体设置为蓝色
        'align': 'center',             # 水平居中
        'valign': 'vcenter',           # 垂直居中
})
# 将第一列的列宽设为40
worksheet.set_column(0, 0, 40)
# 将第三列的列宽设为30
worksheet.set_column('C:C', 30)
# 将A1到A4的单元格合并并插入数据和数据的样式
worksheet.merge_range('A1:A4', '渡劫(送千万元宝)', merge_format1)
# 将A5到A8的单元格合并并插入数据和数据的样式
worksheet.merge_range(4, 0, 7, 0, '天域苍穹(送极品貂蝉)', merge_format1)
# 添加礼包名称
worksheet.write(0, 1, '新手礼包', merge_format1)
worksheet.write(1, 1, '特权礼包', merge_format1)
worksheet.write(2, 1, '预约礼包', merge_format1)
worksheet.write(5, 1, '专属礼包', merge_format1)
worksheet.write(6, 1, '上线礼包', merge_format1)
worksheet.write(7, 1, '首冲礼包', merge_format1)
# 将独家礼包合并并将背景标成红色
worksheet.merge_range(3, 1, 4, 1, '独家礼包', merge_format2)
# 添加礼包内容
for i in range(8):
        if i < 4:
                worksheet.write(i, 2, '礼包内容{}'.format(i+1), merge_format3)
                continue
        worksheet.write(i, 2, '礼包内容{}'.format(i+1), merge_format4)

workbook.close()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值