python—xlwt模块详解

news2024/10/6 1:38:31

一、前言

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

识别项目风险的7种方法

成功的项目经理有一个共同的特点:能够识别和管理风险。本文主要讨论识别项目风险的七个方法。 何时识别风险 在项目开始的时候,风险暴露是最大的,不确定性很高。因为项目在开始的时候,信息比较少。明智的项目经理会在项目早期就…

python基础 | Numpy基础

文章目录📚数组操作🐇np数组的构造🥕np数组的构造🥕特殊补充🐇np数组的变形和合并🥕转置🥕合并操作🥕维度变换🐇np数组的切片和索引🥕一维数组索引与切片&…

嵌套走马灯Carousel

Carousel 的应用很广泛,基础用法这里不多做阐述,感兴趣的可以去element-gui了解Carousel 组件。 今天主要是梳理嵌套走马灯的逻辑,背景如下: 需要对项目做一个展示,项目可能有一个或多个,同时一个项目可能…

2023爱分析·云原生智能运维中台市场厂商评估报告:秒云(miaoyun.io)

目录 1. 研究范围定义 2. 云原生智能运维中台市场定义 3. 厂商评估:秒云(miaoyun.io) 4. 入选证书 1. 研究范围定义 数字化时代,应用成为企业开展各项业务的落脚点。随着业务的快速发展,应用的功能迭代变得越…

Scala集合详解(第七章:集合、数组、列表、set集合、map集合、元组、队列、并行)(尚硅谷笔记)

集合第七章:集合7.1 集合简介7.1.1 不可变集合继承图7.1.2 可变集合继承图7.2 数组7.2.1 不可变数组7.2.2 可变数组7.2.3 不可变数组与可变数组的转换7.2.4 多维数组7.3 列表 List7.3.1 不可变 List7.3.2 可变 ListBuffer7.4 Set 集合7.4.1 不可变 Set7.4.2 可变 mutable.Set7.…

蓝牙运动耳机什么牌子的好、运动蓝牙耳机排行榜推荐

近些年,户外运动兴起,运动耳机迎来爆发增长,拒绝运动乏味,追求健康运动方式,已经成为当下年轻人的共同诉求。跑步骑行听音乐,已经是运动爱好者再熟悉不过的操作,很多人在运动中离不开音乐的节奏…

双检测人脸防伪识别方法(活体检测+人脸识别+关键点检测+人像分割)

双检测人脸防伪识别=人脸检测+活体检测+人脸识别 1.人脸关键点+语义分割 使用mediapipe进行视频人脸关键点检测和人像分割: import time import cv2 import mediapipe as mp import numpy as npmp_drawing = mp.solutions.drawing_utils mp_drawing_styles = mp.solution…

定了:Python3.7,今年停止更新~

大家好,这里是程序员晚枫。 今天给大家分享一个来自Python官网的重要消息:Python3.7马上就要停止维护了,请不要使用了! 官网链接:https://devguide.python.org/versions/ 停更的后果是什么? 周末翻阅Py…

从功能测试(点点点)到进阶自动化测试,实现薪资翻倍我只用了3个月时间

前言 从事测试工作已3年有余了,今天想聊一下自己刚入门时和现在的今昔对比,虽然现在也没什么成就,只能说笑谈一下自己的测试生涯,各位看官就当是茶余饭后的吐槽吧,另外也想写一写自己的职场感想,希望对刚开…

实例4:树莓派GPIO控制舵机转动

实例4:树莓派GPIO控制舵机转动 实验目的 通过背景知识学习,了解舵机的外观及基本运动方式。了解四足机器人mini pupper腿部单个舵机的组成结构。通过GPIO对舵机进行转动控制,熟悉PWM。了解mini pupper舵机组的整体调零。 实验要求 使用Py…

【vue2每日小知识】实现directive自定义指令的封装与全局注册

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:将我们的自定义指令directive统一管理并批量注册 目录 一、directive自定义指令介绍 二…

LeetCode——752. 打开转盘锁

一、题目 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个…

Python每日一练(20230222)

目录 1. 柱状图中最大的矩形 2. 汇总区间 3. 寻找旋转排序数组中的最小值 1. 柱状图中最大的矩形 难度:困难 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出…

IDEA工具系列之连接Linux

我们在开发的时候,用IDEA开发程序,用XSHELL来管理服务器,这两个工具切换比较麻烦。有没有用IDEA来连接Linux。当然有,下面有实践步骤: 首先:连接Linux 打开IDEA->Tools->Start SSH Session 其中1&…

MySQL------窗口函数

一、窗口函数定义 1、 适用场景及分类 怎么样得到各部门工资排名前N名员工列表? 查找各部门每人工资占部门总工资的百分比? 累计求和如何计算? 连续统计N天登陆的用户?以上类型问题均使用窗口函数可以解决,这类需求都有一个共同…

51单片机串口使用

文章目录前言一、串口概念二、中断中的RI、TI和SUBF1.RI2.TI3.SUBF三、串口波特率的计算四、代码的编写总结前言 今天将为大家讲解51单片机的串口原理及代码编写。 一、串口概念 51单片机串口是一种通信接口,它可以将51单片机与外部设备连接起来,实现…

单片机输入输出模式

单片机输入输出模式输入模式模拟输入、浮空输入、上拉输入、下拉输入GPIO输出模式推挽输出、开漏输出、复用推挽输出、复用开漏输出。上下拉电阻上拉电阻下拉电阻输入模式 模拟输入、浮空输入、上拉输入、下拉输入 模拟输入:I/O端口的模拟信号(电压信号…

Python入门自学进阶-Web框架——32、上课、作业流程开发

对学员上课、作业进行管理。首先对几个表,即model用途进行阐述:课程表存放要开什么课,有了课程表,就要有班级,如开了Python入门课程,再根据学员人数,组成班级,如Python入门课程一班、…

报考浙大MBA项目的基本常识信息

一、项目简介 以培养具有国际视野、创新创业精神、卓越领导能力和高度社会责任感的中高级管理人才和创业型人才为己任。通过对引领时代发展的经典管理思想和前沿管理理念的传授,以及对推动行业健康发展的企业管理实践的研讨,来培养和提升学员的职业意…

一个测试工程师的7年感悟 ---- 致在一路独行的你(别放弃)

前言 不知不觉在软件测试行业,摸爬滚打了7年之久。这一路上也留下了许许多多令我难以忘记的故事。有刚入行时的迷茫,有学习技术路上踩过的坑,有做项目连夜敲代码的悲情也有迎来项目成功上线的欢愉,有太多太多值得铭记的瞬间&…