目录
一、前言二、基础操作三、样式优化1、设置行列宽度2、设置文本居中3、设置边框4、设置字体样式5、综合代码一、前言
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)
到此这篇关于python中xlwt模块的具体用法的文章就介绍到这了,更多相关python xlwt模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?