跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python 自动化办公:使用 xlwt 写入 Excel

Python xlwt 库用于创建和写入 Excel 文件。支持添加工作表、合并单元格及设置格式。安装后通过 Workbook 创建对象,add_sheet 生成工作表,write 写入数据,save 保存为 xls 文件。样式设置涵盖字体、列宽、行高、边框、背景色及对齐方式。适用于旧版 Excel 兼容性需求。

极光发布于 2025/2/5更新于 2026/10/2589 浏览
Python 自动化办公:使用 xlwt 写入 Excel

前言

Python 中能操作 Excel 的库主要有以下 9 种。

本文主要针对 xlwt 写入 Excel 进行详细介绍。

一、xlwt 写入 Excel

1. xlwt 模块介绍

1.1 什么是 xlwt 模块

xlwt 是一个用于创建和操作 Microsoft Excel 文件的 Python 模块。它允许用户将数据和格式化信息写入 Excel 工作表,并可以添加工作表、合并单元格、设置单元格格式等。

1.2 为什么使用 xlwt 模块

xlwt 可以用于写入新的 Excel 表格或者在原表格基础上进行修改,速度也很快,推荐使用!

官方文档:

2.安装 xlwt 模块

在命令行窗口中使用 pip install xlwt 命令安装 xlwt 模块。

import xlwt

我这里是 anaconda 自带有 xlwt

3.使用介绍

3.1 数据操作

常用单元格的数据类型

  • empty(空的)
  • string(text)
  • number
  • date
  • boolean
  • error
  • blank(空白表格)

1、导入 xlwt 模块

import xlwt

2、创建一个 Workbook 对象

workbook = xlwt.Workbook(encoding="ascii")

3、创建一个 sheet 对象

sheet = workbook.add_sheet("Sheet1")

4、往表格中写入数据

sheet.write(row, col, value)

5、保存工作表

workbook.save("example.xls")

完整示例:

import xlwt

# 创建 Workbook 对象
workbook = xlwt.Workbook(encoding="ascii")

# 创建 sheet 对象
sheet = workbook.add_sheet("Sheet1")

# 写入单元格
sheet.write(0, 0, "姓名")
sheet.write(0, 1, "年龄")
sheet.write(, , )
sheet.write(, , )
sheet.write(, , )
sheet.write(, , )


style = xlwt.XFStyle()
font = xlwt.Font()
font.name = 
font.bold = 
style.font = font
sheet.write(, , , style)


workbook.save()
1
0
"张三"
1
1
"20"
2
0
"李四"
2
1
"25"
# 设置单元格格式
"Times New Roman"
True
0
0
"姓名"
# 保存工作表
"example.xls"

以上示例将创建一个 Excel 文件,其中包含一个名为'Sheet1'的工作表,包含三行数据,第一行是'姓名'和'年龄'两个单元格的标题,第二行和第三行是人员姓名和年龄的数据。第一个单元格的文本使用样式来加粗。文件将保存为'example.xls'。

3.2 设置样式
3.2.1 设置样式
def fun3_2_3():
    # 创建新的 workbook(其实就是创建新的 excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的 sheet 表
    worksheet = workbook.add_sheet("My new Sheet")

    # 初始化样式
    style = xlwt.XFStyle()

    # 为样式创建字体
    font = xlwt.Font()
    font.name = 'Times New Roman'   #字体
    font.bold = True                #加粗
    font.underline = True           #下划线
    font.italic = True              #斜体

    # 设置样式
    style.font = font

    # 往表格写入内容
    worksheet.write(0,0, "内容 1")
    worksheet.write(2,1, "内容 2",style)

    # 保存
    workbook.save("新创建的表格.xls")
3.2.2 设置列宽

xlwt 中列宽的值表示方法:默认字体 0 的 1/256 为衡量单位。

xlwt 创建时使用的默认宽度为 2960,即 11 个字符 0 的宽度。

所以我们在设置列宽时可以用如下方法:

width = 256 * 20 256 为衡量单位,20 表示 20 个字符宽度

程序示例:

def fun3_2_4():
    # 创建新的 workbook(其实就是创建新的 excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的 sheet 表
    worksheet = workbook.add_sheet("My new Sheet")

    # 往表格写入内容
    worksheet.write(0,0, "内容 1")
    worksheet.write(2,1, "内容 2")

    # 设置列宽
    worksheet.col(0).width = 256*20

    # 保存
    workbook.save("新创建的表格.xls")
3.2.3 设置行高

在 xlwt 中没有特定的函数来设置默认的列宽及行高。

行高是在单元格的样式中设置的,你可以通过自动换行通过输入文字的多少来确定行高。

程序示例:

# 3.2.5 设置行高
def fun3_2_5():
    # 创建新的 workbook(其实就是创建新的 excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的 sheet 表
    worksheet = workbook.add_sheet("My new Sheet")

    # 往表格写入内容
    worksheet.write(0,0, "内容 1")
    worksheet.write(2,1, "内容 2")

    # 设置行高
    style = xlwt.easyxf('font:height 360;')  # 18pt,类型小初的字号
    row = worksheet.row(0)
    row.set_style(style)

    # 保存
    workbook.save("新创建的表格.xls")
3.2.4 合并列和行
# 3.2.6 合并列和行
def fun3_2_6():
    # 创建新的 workbook(其实就是创建新的 excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的 sheet 表
    worksheet = workbook.add_sheet("My new Sheet")

    # 往表格写入内容
    worksheet.write(0,0, "内容 1")

    # 合并 第 1 行到第 2 行 的 第 0 列到第 3 列
    worksheet.write_merge(1, 2, 0, 3, 'Merge Test')

    # 保存
    workbook.save("新创建的表格.xls")
3.2.5 添加边框
# 3.2.7 添加边框
def fun3_2_7():
    # 创建新的 workbook(其实就是创建新的 excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的 sheet 表
    worksheet = workbook.add_sheet("My new Sheet")

    # 往表格写入内容
    worksheet.write(0,0, "内容 1")

    # 设置边框样式
    borders = xlwt.Borders()  # Create Borders

    # May be:   NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR,
    #           MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED,
    #           MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.
    # DASHED 虚线
    # NO_LINE 没有
    # THIN 实线

    borders.left = xlwt.Borders.DASHED
    borders.right = xlwt.Borders.DASHED
    borders.top = xlwt.Borders.DASHED
    borders.bottom = xlwt.Borders.DASHED
    borders.left_colour = 0x40
    borders.right_colour = 0x40
    borders.top_colour = 0x40
    borders.bottom_colour = 0x40

    style = xlwt.XFStyle()  # Create Style
    style.borders = borders  # Add Borders to Style

    worksheet.write(0, 0, '内容 1', style)

    worksheet.write(2,1, "内容 2")

    # 保存
    workbook.save("新创建的表格.xls")
3.2.6 单元格设置背景色
# 设置单元格背景色
def fun3_2_8():
    # 创建新的 workbook(其实就是创建新的 excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的 sheet 表
    worksheet = workbook.add_sheet("My new Sheet")

    # 往表格写入内容
    worksheet.write(0,0, "内容 1")

    # 创建样式
    pattern = xlwt.Pattern()

    # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN

    # May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow,
    # 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow ,
    # almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
    pattern.pattern_fore_colour = 5
    style = xlwt.XFStyle()
    style.pattern = pattern

    # 使用样式
    worksheet.write(2,1, "内容 2",style)
3.2.7 设置单元格对齐

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

VERT_TOP = 0x00 上端对齐 VERT_CENTER = 0x01 居中对齐(垂直方向上)VERT_BOTTOM = 0x02 低端对齐 HORZ_LEFT = 0x01 左端对齐 HORZ_CENTER = 0x02 居中对齐(水平方向上)HORZ_RIGHT = 0x03 右端对齐

程序示例:

# 设置单元格对齐
def fun3_2_9():
    # 创建新的 workbook(其实就是创建新的 excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的 sheet 表
    worksheet = workbook.add_sheet("My new Sheet")

    # 往表格写入内容
    worksheet.write(0,0, "内容 1")

    # 设置样式
    style = xlwt.XFStyle()
    al = xlwt.Alignment()
    # VERT_TOP = 0x00       上端对齐
    # VERT_CENTER = 0x01    居中对齐(垂直方向上)
    # VERT_BOTTOM = 0x02    低端对齐
    # HORZ_LEFT = 0x01      左端对齐
    # HORZ_CENTER = 0x02    居中对齐(水平方向上)
    # HORZ_RIGHT = 0x03     右端对齐
    al.horz = 0x02  # 设置水平居中
    al.vert = 0x01  # 设置垂直居中
    style.alignment = al

    # 对齐写入
    worksheet.write(2,1, "内容 2",style)

    # 保存
    workbook.save("新创建的表格.xls")

目录

  1. 前言
  2. 一、xlwt 写入 Excel
  3. 1. xlwt 模块介绍
  4. 1.1 什么是 xlwt 模块
  5. 1.2 为什么使用 xlwt 模块
  6. 2.安装 xlwt 模块
  7. 3.使用介绍
  8. 3.1 数据操作
  9. 创建 Workbook 对象
  10. 创建 sheet 对象
  11. 写入单元格
  12. 设置单元格格式
  13. 保存工作表
  14. 3.2 设置样式
  15. 3.2.1 设置样式
  16. 3.2.2 设置列宽
  17. 3.2.3 设置行高
  18. 3.2.5 设置行高
  19. 3.2.4 合并列和行
  20. 3.2.6 合并列和行
  21. 3.2.5 添加边框
  22. 3.2.7 添加边框
  23. 3.2.6 单元格设置背景色
  24. 设置单元格背景色
  25. 3.2.7 设置单元格对齐
  26. 设置单元格对齐

更多推荐文章

查看全部
  • Whisper Diarization 语音识别与说话人分离入门指南
  • FPGA HDMI 输出实战:从接口原理到 4K 显示全流程
  • C++ 继承机制详解:概念、访问控制与多继承处理
  • AI 驱动的自动化运维机器人:从数字劳动力到智能协作者
  • Linux 下调试 C/C++ 程序的核心 GDB 命令
  • 算法实战:LeetCode 1419 数青蛙(模拟法)
  • 大模型面试核心知识点整理:基础、微调、推理与评测
  • AI 绘画:数字艺术的未来
  • 千笔 AI 学术写作辅助工具核心功能解析
  • 贪心算法进阶实战:摆动序列与最长递增子序列详解
  • 前端面试高频题库整理(JavaScript/React/Vue/工程化等)
  • K-means 聚类算法原理与实现详解
  • MySQL 覆盖索引:原理、优势与适用场景
  • 医疗 AI 场景下的逻辑回归:原理、应用与实战
  • 30 行 Python 实现公开接口数据抓取与本地化存储
  • 本地电脑部署 DeepSeek-R1 模型实战指南
  • AI 绘画提示词引导系数设置指南:从原理到实践
  • Java 并发编程基石:深入理解 synchronized 与 volatile 关键字
  • Trae AI IDEA 插件实战指南:Java 开发效率提升
  • C/C++ 全局变量跨文件机制与底层原理

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online