python中xlwt模块的具体用法
作者:W0ngk 发布时间:2023-11-08 07:10:15
一、前言
xlwt模块是python中专门用于写入Excel的拓展模块,可以实现创建表单、写入指定单元格、指定单元格样式等人工实现的功能,一句话就是人使用excel实现的功能,这个扩展包都可以实现。
二、基础操作
1、创建workbook(创建excel)
#创建一个工作簿对象,设置编码格式为“utf-8”,默认格式是ASCII,为了方便写入中文,一般都要设置成UTF-8
workBook = xlwt.Workbook(encoding='utf-8')
2、创建sheet表
# 通过工作薄对象创建sheet,sheetName 要求长度小于31个字符,并且不能存在斜杠,否则会报错
sheet = workBook.add_sheet("sheetName")
3、写入数据
#首先需要在第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])
4、保存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 = 'C:\\Users\\Administrator\\Desktop\\test.xls'
workBook.save(savePath)
运行效果如下:
三、样式优化
1、设置行列宽度
1)设置列的宽度
在表格之中行是按照数字来计算,列是按照英文字母顺序来计算的。但是在xlwt库中则是将它们都改成从0开始,类似于索引的对象获取方式。调用sheet.col(0)就可以获取到表格列对象,它表示的就是列A。然后设置width属性值即可修改列宽,xlwt中默认字体0的1/256为衡量单位。xlwt创建时使用的默认宽度为2960,既11个字符0的宽度。
所以我们在设置列宽时可以用如下方法:width = 256 * 20 256为衡量单位,20表示20个字符宽度。
示例代码:
for i in range (len(head)):
sheet.col(i).width = 256*20
2)设置行的高度
行高的修改方式和列宽实际上是差不多的,使用row()方法并且传入索引即可获取到行对象。然后调用set_style()方法去设置行样式。
示例代码:
for i in range(len(data)):
sheet.row(i+1).set_style(xlwt.easyxf('font:height 512;')) #第0行为表头,不修改
综合操作结果:
2、设置文本居中
在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)
测试效果:
3、设置边框
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)
测试效果:
4、设置字体样式
设置字体样式,需要使用Font()来创建字体样式。
示例:
style = xlwt.XFStyle() # 初始化样式
font = xlwt.Font() # 为样式创建字体
font.name = 'Times New Roman'
font.bold = True # 黑体
font.underline = True # 下划线
font.italic = True # 斜体字
style.font = font # 设定样式
测试效果:
5、综合代码
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(head)):
sheet.col(i).width = 256*20
style = xlwt.XFStyle() # 创建一个样式对象,初始化样式
al = xlwt.Alignment()
borders = xlwt.Borders()
font = xlwt.Font()
#设置居中
al.horz = 0x02 # 设置水平居中
al.vert = 0x01 # 设置垂直居中
#设置边框
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
# 设置字体样式
font.name = 'Times New Roman'
font.bold = True # 黑体
font.underline = True # 下划线
font.italic = True # 斜体字
# 设定样式
style.font = font
style.alignment = al
style.borders = borders
# 写入数据和样式
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)
# 保存工作薄
savePath = 'C:\\Users\\Administrator\\Desktop\\test.xls'
workBook.save(savePath)
来源:https://blog.csdn.net/qq_45590334/article/details/129158903
猜你喜欢
- input() 的用法Python3.x 中input() 函数接受一个标准输入数据,返回为 string 类型。python3将input
- #!/usr/bin/env python3# -*- coding: utf-8 -*-# File Name : gt1.py# Pur
- Dean Edwards 最近有篇文章很精彩,忍不住在这里翻译下。-- Split --很多 Javascript 框架都提供了自定义事件(
- 安装好mysql后,在终端输入 mysql -u root -p 按回车,输入密码后提示access denied......ues pas
- 参数strSQL 要导出的SQL查询语句strFields 字段名称列表,如果为空字符,则使用SQL语句中的字段名用法示例:1:export
- 最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改 之前的版本是本人疏忽 真对不住大家了
- 一、基本(1)利用pytorch建好的层进行搭建import torchfrom torch import nnfrom torch.nn
- 游戏规则用pygame动画实现神庙逃亡类似的小游戏,当玩家移动的时候躲避 * ,如果 * 命中玩家或者名字龙都会减速,玩家躲避 * 使更多的 * 打
- 如下所示:import osimport structimport pandas as pddef readTdxLdayFile(fnam
- 我们打开Google的时候可能大家会发现,无论你输入Google的任何网址,它都根据你使用的语言自动判断并跳转到不同的语言界面。也就是你用不
- 互联网上的每台计算机都有独一无二的编号,称为IP地址,每个合法的IP地址由“.”分开的4个数字组成,并且IP地址细分类型的话,可以分为“A”
- Python引入了一个机制:引用计数。引用计数python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,
- 天极网软件频道的图片切换特效,完全是由XHTML+CSS+JS实现的图片切换特效,弄了好半天啊!!如果您使用或者转载请别忘了加我的一个连接啊
- django版本:1.4.21。一、准备工作1、新建项目和app[root@yl-web-test srv]# django-admin.p
- Oracle的执行计划一句话命令:set autotrace on
- 前言之前做了一个校园交友的APP,其中一个逻辑是通过用户的教务系统来确认用户是一名在校大学生,基本的想法是通过用户的账号和密码,用爬虫的方法
- 说到客户端数据存储,可能第一时间想到的是cookies,这是一种网站常见的存储数据的方法。它的最大优点是兼容性好,几乎所有浏览器都具有这个功
- 数据类型是所有开发语言的基础,JavaScript虽然是一个弱类型的脚本语言,但是在数据类型上也有很多讲究的,看了淘宝UED玉伯的一篇文章,
- 好了,看看我们的代码吧:upload.htm' 上传页面<html> <body>&nb
- 一、引出问题假如有这两张表,它们中的课程可能价格不一样、周期不一样、等等...不一样...,现在有一张价格策略表,怎么就用一张表报保存它们之