前言
Python 中能操作 Excel 的库主要有以下 9 种。
本文主要针对 xlwt 写入 Excel 进行详细介绍。
Python xlwt 库用于创建和写入 Excel 文件。支持添加工作表、合并单元格及设置格式。安装后通过 Workbook 创建对象,add_sheet 生成工作表,write 写入数据,save 保存为 xls 文件。样式设置涵盖字体、列宽、行高、边框、背景色及对齐方式。适用于旧版 Excel 兼容性需求。

Python 中能操作 Excel 的库主要有以下 9 种。
本文主要针对 xlwt 写入 Excel 进行详细介绍。
xlwt 是一个用于创建和操作 Microsoft Excel 文件的 Python 模块。它允许用户将数据和格式化信息写入 Excel 工作表,并可以添加工作表、合并单元格、设置单元格格式等。
xlwt 可以用于写入新的 Excel 表格或者在原表格基础上进行修改,速度也很快,推荐使用!
官方文档:
在命令行窗口中使用 pip install xlwt 命令安装 xlwt 模块。
import xlwt
我这里是 anaconda 自带有 xlwt
常用单元格的数据类型
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(1, 0, "张三")
sheet.write(1, 1, "20")
sheet.write(2, 0, "李四")
sheet.write(2, 1, "25")
# 设置单元格格式
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = "Times New Roman"
font.bold = True
style.font = font
sheet.write(0, 0, "姓名", style)
# 保存工作表
workbook.save("example.xls")
以上示例将创建一个 Excel 文件,其中包含一个名为'Sheet1'的工作表,包含三行数据,第一行是'姓名'和'年龄'两个单元格的标题,第二行和第三行是人员姓名和年龄的数据。第一个单元格的文本使用样式来加粗。文件将保存为'example.xls'。
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")
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")
在 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.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.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")
# 设置单元格背景色
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)
使用 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")

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online