首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【愚公系列】2023年07月 Python自动化办公之xlwt写入excel

【愚公系列】2023年07月 Python自动化办公之xlwt写入excel

作者头像
愚公搬代码
发布2025-05-28 15:50:01
发布2025-05-28 15:50:01
2990
举报
文章被收录于专栏:历史专栏历史专栏

前言

python中能操作Excel的库主要有以下9种:

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

一、xlwt写入excel

1.xlwt模块介绍

1.1 什么是xlwt模块

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

1.2 为什么使用xlwt模块

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

官方文档:https://xlwt.readthedocs.io/en/latest/

2.安装xlwt模块

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

代码语言:javascript
复制
import xlwt

我这里是anaconda自带有xlwt

3.使用介绍

3.1 数据操作

常用单元格的数据类型

代码语言:javascript
复制
empty(空的)
string(text)
number
date
boolean
error
blank(空白表格)

1、导入xlwt模块

代码语言:javascript
复制
import xlwt

2、创建一个Workbook对象

代码语言:javascript
复制
workbook = xlwt.Workbook(encoding="utf-8")

3、创建一个sheet对象

代码语言:javascript
复制
sheet = workbook.add_sheet("Sheet1")

4、往表格中写入数据

代码语言:javascript
复制
sheet.write(row, col, value)

6、保存工作表

代码语言:javascript
复制
workbook.save("example.xls")

完整示例:

代码语言:javascript
复制
import xlwt

# 创建Workbook对象
workbook = xlwt.Workbook(encoding="utf-8")

# 创建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”。

3.2 设置样式
3.2.1 设置样式
代码语言:javascript
复制
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个字符宽度

程序示例:

代码语言:javascript
复制
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中没有特定的函数来设置默认的列宽及行高

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

程序示例:

代码语言:javascript
复制
# 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 合并列和行
代码语言:javascript
复制
# 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 添加边框
代码语言:javascript
复制
# 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 单元格设置背景色
代码语言:javascript
复制
# 设置单元格背景色
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 右端对齐

程序示例:

代码语言:javascript
复制
# 设置单元格对齐
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")
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、xlwt写入excel
    • 1.xlwt模块介绍
      • 1.1 什么是xlwt模块
      • 1.2 为什么使用xlwt模块
    • 2.安装xlwt模块
    • 3.使用介绍
      • 3.1 数据操作
      • 3.2 设置样式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档