c循环创建文件名_(原创)xlsxwriter,python excel 写入数据\图表等操作_创建、写入(一)...

xlsxwriter简单介绍:可以用于将文本,数字和公式写入多个工作表,支持格式设置,图像,图表,页面设置,条件格式设置,vba写入等功能,大多情况下,生成的文件和excel生成的文件100%相同,只支持单个单元格数据写入,无法读写现有的excel文件。

1、安装xlsxwriter

安装xlsxwriter

pip install xlsxwriter

2、创建excel文件

创建一个工作簿对象

wb = xlsxwriter.Workbook("filename.xlsx")

只有文件名的话,创建的文件会在程序运行所在的文件夹

可以以绝对路径,指定路径存放,如:

wb = xlsxwriter.Workbook("e:filename.xlsx")

添加工作表

使用wb对象的add_worksheet()方法

ws = wb.add_worksheet()

如果没有指定sheet的名称,默认以sheet1命名,后续再添加工作表,继续以sheet2,sheet3等自动命名,如需指定sheet名,可在方法中增加名字参数,如:

ws = wb.add_worksheet("案例")

操作完后,在没有使用close()方法前,都是在内存中,只有使用close()方法后才会在真正生成excel文件

生成excel的完整操作案例:

import xlsxwriter

wb = xlsxwriter.Workbook("e:filename.xlsx")
ws = wb.add_worksheet("案例")
wb.close()

9fac725e246fd44eb3fe7d43a85099d5.png

b64d481436b13bca1b9ea8fc611f3dc9.png

注意:相同路径下,文件名相同,默认会覆盖原有文件

3、写入数据

上面的案例创建了一个空的excel文件,下面看如果创建一个有数据的excel文件

同样先引入模块,创建对象,添加工作表

import xlsxwriter

wb = xlsxwriter.Workbook("e:xlsxwriterfilename.xlsx")
ws = wb.add_worksheet("案例")

使用write(单元格位置,数据,格式)方法写入数据

单位格位置:

1、以行,列表示,0表示1行/列,2表示2行/列,如0,0代表1行1列, 1,0表示2行1列

ws.write(0,0'数据')

bbe37821a4248e788122d917b2db28c7.png
ws.write(1,0,'数据')

25a0936c04d57d463ea850dbdb9593c3.png

2、以单元格名称表示,如'A1', 'A2' 等

ws.write('A1','数据')

bbe37821a4248e788122d917b2db28c7.png
ws.write('A2','数据')

25a0936c04d57d463ea850dbdb9593c3.png

格式:为可选参数,如需使用格式,则需使用add_format()方法定义后添加

fm = wb.add_format()

添加格式方式有两种,一种是以字典表作为参数传入(推荐),另一种是以格式化方法的方式

1、字典表传值

pm = {
    'bold' : True,
    'font_name' : '微软雅黑'
}

fm = wb.add_format(pm)
ws.write('A2','数据',fm)

68d5fb5ef68bac47f6184d34aaad35bd.png

2、格式化方法

fm = wb.add_format()
fm.set_bold(True)
fm.set_font_name('微软雅黑')
ws.write('B2','数据',fm)

e6790d2a6c49d7dc6edcbf4b6499e09d.png

相关属性及方法名称如下(详细介绍可参考官网xlsxwriter格式):

16158af752a61553803ccd134562c8b4.png

综合案例:

import xlsxwriter

wb = xlsxwriter.Workbook("e:xlsxwriterfilename.xlsx")
ws = wb.add_worksheet("案例")

# 数据
data = [
    ('描述','属性','方法名称'),
    ('字体类型','font_name','set_font_name()'),
    ('字体大小','font_size','set_font_size()'),
    ('字体颜色','font_color','set_font_color()'),
    ('粗体','bold','set_bold()')
]

#字段格式
header = {
    'bold' : True, #粗体
    'font_name' : '微软雅黑',
    'font_size' : 10,
    'border' : True, #边框线
    'align' : 'center', #水平居中
    'valign' : 'vcenter', #垂直居中
    'bg_color' : '#66DD00' #背景颜色
}

text = {
    'font_name' : '微软雅黑',
    'font_size' : 9,
    'border' : True,
    'align' : 'left', #左对齐
    'valign' : 'vcenter'
}

headerpm = wb.add_format(header)
textpm = wb.add_format(text)
ws.set_column('C:C',13)  #C列宽度

for row,rowdata in enumerate(data):
    for col,coldata in enumerate(rowdata):
        if row==0:
            ws.write(row,col,coldata,headerpm)
        else:
            ws.write(row, col, coldata, textpm)


wb.close()

生成的文件如下:

592b73eabfb28de5bcfa26c923d7e5de.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值