一、前言

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 = 0xffstyle.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 xlwtworkBook = 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模块详解相关推荐

  1. python中 xlrd/xlwt模块详解

    python中 xlrd/xlwt模块详解 1.什么是xlrd模块 python操作excel主要用到xlrd和xlwt两个库,即xlrd是读excel,xlwt是写excel库 一.安装xlrd模块 ...

  2. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明    一.简 ...

  3. Python—requests模块详解

    Python-requests模块详解 来源(博客园@小L小 ):Python-requests模块详解

  4. python re正则_正则表达式+Python re模块详解

    正则表达式(Regluar Expressions)又称规则表达式,在代码中常简写为REs,regexes或regexp(regex patterns).它本质上是一个小巧的.高度专用的编程语言. 通 ...

  5. python cx_oracle模块详解_cx_Oracle模块详解

    1.安装cx_Oracle模块 1-1.环境准备: 1-1-1.oracle client最小安装 instantclient-sqlplus-linux.x64-11.2.0.4.0 instant ...

  6. Python shutil 模块详解

    Python shutil 模块详解 1.模块介绍 2.copytree 示例 3.move 示例 1.模块介绍 import shutil# copy data from file-like obj ...

  7. Python timeit 模块详解(准确测量小段代码的执行时间)

    timeit 模块详解 -- 准确测量小段代码的执行时间 timeit 模块提供了测量 Python 小段代码执行时间的方法.它既可以在命令行界面直接使用,也可以通过导入模块进行调用.该模块灵活地避开 ...

  8. Python Tkinter模块详解(后续持续补充)

    声明:该文章是个人学习中写的,目的是总结及当作工具参考,有一定的借鉴成分,后续若有新发现则补充 目录 Tkinter简介 创建组件基本语法 Tkinter组件汇总 Variable 类 常见参数详解 ...

  9. python pexpect模块详解_python pexpect原理详解及使用说明

    pexpect是python中用于实现SSH,FTP,telnet等命令进行自动化交互,从而无需人工干预实现自动化运维的一个第三方扩展模块.理论的描述过于抽象,这里首先设想一下,如果让您设计一个实现自 ...

最新文章

  1. 学学这个垃圾×××网站怎么埋头赚大钱的!
  2. OpenCV函数 Canny 检测边缘
  3. Dos批处理常用命令大全扫盲篇
  4. 把虚拟机装到内存里(打开PScs3只需要2秒)
  5. 记录cu上shell比赛的第6题:输入日期,打印天数
  6. python方向键控制角色_用python和pygame游戏编程入门-控制角色移动
  7. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 4丨员工薪水中位数【难度困难】
  8. Kotlin实战【五】Kotlin中的异常
  9. html5都有神马岗位,HTML5的优势和岗位要求你都知道吗
  10. 贴片铝电容识别及型号_贴片式铝电解电容常用型号封装
  11. 天猫魔盒1代TMB100E刷机, 以及右声道无声的问题
  12. Ubuntu键盘鼠标失灵
  13. 7-6 愿天下有情人都是失散多年的兄妹 (25分)
  14. 结构性用工荒也是用工荒
  15. 高一数学微课堂【教学视频】
  16. HTML实现A4模板
  17. python自带库zlib_python中的zlib解压
  18. Daftart.ai:人工智能专辑封面生成器
  19. C语言/C++编程学习:C语言环境设置
  20. apktool 用法命令详解

热门文章

  1. C语言例题——输入两个正整数m和n,求其最大公约数和最小公倍数。
  2. 高功率DC-DC4.5V-18V同步降压转换器18V600kHz2A输出电流参考资料
  3. 三中卫低级失误致丢球 国足0:3不敌伊朗无缘四强
  4. Chrome浏览器安装主题方法
  5. 两数相除之分析问题解决问题
  6. 动态规划——背包问题(01背包问题)
  7. 01背包问题 动态规划 java实现 简单通俗易懂
  8. sql删除用逗号分隔字段中的某一个值
  9. 苹果无线耳机连接不上_TWS真无线耳机设计痛点该如何“见招拆招”?
  10. Fegin远程调用示例实战