xlwt模块,写入数据到Excel文档

安装xlwt
pip install xlwt
创建workbook(创建excel)
#创建一个工作簿对象,设置编码格式为“utf-8”,默认格式是ASCII,为了方便写入中文,一般都要设置成UTF-8
workBook = xlwt.Workbook(encoding='utf-8')
创建sheet表
# 通过工作薄对象创建sheet,sheetName 要求长度小于31个字符,并且不能存在斜杠,否则会报错
sheet = workBook.add_sheet("sheetName")
写入数据
#首先需要在第0行写入表头,然后再写入后续数据,但是都是使用的write方法写入,只是坐标不一样
head = ['姓名''年龄''性别']
data = [['张三''19''男']['刘雯雯''18''女']]
#循环写入表头
for i in head:
	sheet.write(0,head.index(i),i)
#循环写入数据
for i in range(len(data)):
    for j in range(len(data[i])):
        sheet.write(i+1,j,data[i][j])
保存workbook
# 通过workBook对象的save方法保存文档,savePath可以是绝对路径,也可以是相对了路径
savePath = 'C:\\Users\\Administrator\\Desktop\\test.xls'
workBook.save(savePath)
完整示例
import xlwt

workBook = xlwt.Workbook(encoding='utf-8')
sheet = workBook.add_sheet("sheetName")
head = ['姓名', '年龄', '性别']
data = [['张三', '19', '男'], ['刘雯雯', '18', '女']]
for i in head:
    sheet.write(0, head.index(i), i)
for i in range(len(data)):
    for j in range(len(data[i])):
        sheet.write(i + 1, j, data[i][j])
savePath = 'D:\\pythons2\\notes\\python\\test.xls'
workBook.save(savePath)
设置行列宽度
  • sheet.col(0)表示获取表格列表A列对象,在通过width即可修改列宽
  • xlwt中列宽默认为256*11
for x in head:
    sheet.col(head.index(x)).width = 256 * 20
设置行的高度
  • sheet.row(0)获取行对象
  • set_style()用于设置样式
  • set_style(xlwt.easyxf(‘font:height 512;’))设置行高
for i in range(len(data)):
    sheet.row(i+1).set_style(xlwt.easyxf('font:height 512;'))
设置文本对其方式

在xlwt中,需要使用Alignment来设置单元格的对齐方式,其中horz代表水平对齐方式,vert代表垂直对齐方式。

  • VERT_TOP = 0x00 上端对齐
  • VERT_CENTER = 0x01 居中对齐(垂直方向上)
  • VERT_BOTTOM = 0x02 低端对齐
  • HORZ_LEFT = 0x01 左端对齐
  • HORZ_CENTER = 0x02 居中对齐(水平方向上)
  • HORZ_RIGHT = 0x03 右端对齐
style = xlwt.XFStyle()  # 创建一个样式对象,初始化样式
al = xlwt.Alignment()
al.horz = 0x02      	# 设置水平居中
al.vert = 0x01      	# 设置垂直居中
style.alignment = al
for i in range(len(data)):
    for j in range(len(data[i])):
		sheet.write(i+1, j, data[i][j], style)
设置边框

xlwt要设置边框,需要使用Borders来设置,可以设置实线、虚线、没有边框三种,并且可以通过colour属性设置颜色。

  • DASHED:虚线
  • THIN:实线
  • NO_LINE:没有边框
style = xlwt.XFStyle()  # 创建一个样式对象,初始化样式
borders = xlwt.Borders()
#设置边框属性实线、黑色
borders.left = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.right = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
borders.left_colour = 0xff
borders.right_colour = 0xff
borders.bottom_colour = 0xff
borders.top_colour = 0xff

style.borders = borders
for i in range(len(data)):
    for j in range(len(data[i])):
		sheet.write(i+1, j, data[i][j], style)
综合演示代码
import xlwt
from datetime import datetime
import time

workBook = xlwt.Workbook(encoding='utf-8')      # 创建execl文件对象,并设置字符编码
sheet = workBook.add_sheet("sheetName")     # 创建sheet页
head = ['工单编号', '上报人', '上报时间', '发生位置', '工单状态']
data = [['YH202307050001', '枫铭', '2023-07-05 10:20:11', '幸福南路与盛安路交叉口往南200米公交车边上', '待处理'],
        ['YH202307050002', '枫铭', '2023-06-05 11:44:33', '古墩路718号106-107号 新时代互联广场对面的公园里', '已处理'],
        ['YH202307050003', '时空', '2023-07-05 15:22:55', '河道,拱康路,拱康路与管家漾支河交叉口东侧', '已处理'],
        ['YH202307050004', '枫铭', '2023-06-05 10:20:11', '浪漫和山(留和路)往白马山庄方向的路上', '待派单'],]
# 设置每列的宽度
sheet.col(head.index('工单编号')).width = 256*20
sheet.col(head.index('上报人')).width = 256*10
sheet.col(head.index('上报时间')).width = 256*20
sheet.col(head.index('发生位置')).width = 256*50
sheet.col(head.index('工单状态')).width = 256*15
# 创建样式对象
style = xlwt.XFStyle()
al = xlwt.Alignment()
al.horz = 0x02
al.vert = 0x01
style.alignment = al    # 设置对其方式,垂直居中、水平居中
borders = xlwt.Borders()
borders.left = xlwt.Borders.THIN    # 边框设置为实线
borders.top = xlwt.Borders.THIN
borders.right = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
borders.left_colour = 0xff          # 边框颜色为黑色
borders.top_colour = 0xff
borders.right_colour = 0xff
borders.bottom_colour = 0xff
style.borders = borders
for i in head:      # 创建表头
    sheet.write(0, head.index(i), i, style)
for i in range(len(data)):
    sheet.row(i+1).set_style(xlwt.easyxf('font:height 512;'))       # 设置行高
    for j in range(len(data[i])):
        sheet.write(i + 1, j, data[i][j], style)
date = int(time.mktime(datetime.now().timetuple()))
# savePath = 'D:\\pythons2\\notes\\python\\test.xls'
savePath = f'{date}test.xls'	# 当前文件夹生成execl文件
workBook.save(savePath)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值