利用Python第三方库xlwt写入数据到Excel工作表实例代码

 更新时间:2022年07月22日 14:24:41   作者:华仔仔coding  
大家应该都知道xlwt是python中写入到excel的库,下面这篇文章主要给大家介绍了关于利用Python第三方库xlwt写入数据到Excel工作表的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

1. 安装 xlwt 库

Python 写入数据到 Excel 工作簿中可以使用第三方库 xlwt. xlwt 拆分下来看就是 excel 和 write 的简化拼接,意思就是写数据到 Excel. 这个第三方库的 pip 安装命令如下所示:

pip install xlwt -i https://mirrors.aliyun.com/pypi/simple

xlwt 的安装方式和 xlrd 的安装方式一样,不过这里 xlwt 没有指定版本,直接用默认版本就好,其他的不再赘述了。

2. 使用 xlwt 库

使用 xlwt 写入到 Excel 工作簿支持两种扩展名:xls 和 xlsx. 这两种扩展名代表两种不同的 Excel 版本。

xls 为 Excel 2003 及以前的版本扩展名,支持的最大行数为 65536, 最大列数为 256. 而 xlsx 为 Excel 2007 及以后的版本扩展名,它的最大支持行数为 1048576, 最大支持列数为 16384.

需要注意的是,Excel 2007 及之后版本可以打开上述两种格式文件,而 Excel 2003 版本只能打开 xls 格式文件。

2.1 向 Excel 工作表写入单个数据

因为这篇教程是看完 《使用 Python 第三方库 xlrd 读取 Excel 中的数据》才看的进阶教程。因此,Excel 工作簿和 Excel 工作表以及单元格的层次关系,我不再赘述了,直接 ”上菜“:

import xlwt

# 新建工作簿
my_workbook = xlwt.Workbook()
# 创建新的工作表对象 worksheet, 并取名为 test_sheet
sheet = my_workbook.add_sheet('test_sheet')
# 给定单元格坐标, 一次写入一个单元格数据
sheet.write(0, 0, '姓名')
sheet.write(0, 1, '年龄')
sheet.write(0, 2, '班级')
sheet.write(0, 3, '学号')
# 保存文件
my_workbook.save('test.xlsx')

代码解析:

  1. 首先,通过 Workbook() 方法新建一个工作簿对象
  2. 之后,通过 add_sheet() 方法新建一个 Sheet 表,表名为 ‘test_sheet’, 这个可以根据需求自定义。
  3. 然后,又通过 write() 方法写入数据,方法中的参数分别为单元格横坐标、纵坐标和单元格数据。
  4. 最后,使用 save() 方法保存文件,参数为文件名字符串。

2.2 向 Excel 工作表写入多个数据

那么在 2.1 小节中,我们使用 write() 方法每次只写入一个单元格数据,在写入多个数据的时候,每次都调用一次 write() 方法未免过于繁琐,增加了很多冗余代码,降低编码效率。

因此,我们使用一种新的方法,将数据写入到单元格中。修改后的代码如下:

import xlwt

# 新建工作簿
my_workbook = xlwt.Workbook()
# 创建新的工作表对象 worksheet, 并取名为 test_sheet
sheet = my_workbook.add_sheet('test_sheet')
name_list = ['姓名', '年龄', '班级', '学号']
for i in name_list:
    sheet.write(0, name_list.index(i), i)
# 保存文件
my_workbook.save('test.xlsx')

代码解析:

在上面的代码中,我们将要写入的同一行数据存放在一个列表中,之后使用 for 循环,固定单元格横坐标为 0, 列坐标不断变化,列坐标通过调用列表的 index() 方法获取,之后写入的数据就是循环到的当前值。

2.3 向 Excel 工作表写入多个数据(进阶)

在 2.2 小节中,我们学习了向 Excel 工作表写入多个数据,方法是将多个数据以列表的形式组合起来,然后使用 for 循环。那么如果说,写入的数据是列表和字典嵌套形成的,又该怎样将数据剥离出来写入到对应的单元格内呢?
例如,给定一个数据 data, 如下所示:

data = [
    {
        'name': '华仔仔',
        'age': 12,
        'gender': '男',
        'xuehao': '001'
    },
    {
        'name': '华仔',
        'age': 15,
        'gender': '男',
        'xuehao': '002'
    },
    {
        'name': '帅气的华仔仔',
        'age': 18,
        'gender': '男',
        'xuehao': '003'
    },
    {
        'name': '华仔仔coding',
        'age': 20,
        'gender': '男',
        'xuehao': '004'
    }
]

如果是这样的一个数据,此时我们可以考虑使用 Python 内置的函数 enumerate(). 代码如下所示:

import xlwt

# 新建工作簿
my_workbook = xlwt.Workbook()
# 创建新的工作表对象 worksheet, 并取名为 test_sheet
sheet = my_workbook.add_sheet('test_sheet')
name_list = ['姓名', '年龄', '性别', '学号']
for i in name_list:
    sheet.write(0, name_list.index(i), i)
data = [
    {
        'name': '华仔仔',
        'age': 12,
        'gender': '男',
        'xuehao': '001'
    },
    {
        'name': '华仔',
        'age': 15,
        'gender': '男',
        'xuehao': '002'
    },
    {
        'name': '帅气的华仔仔',
        'age': 18,
        'gender': '男',
        'xuehao': '003'
    },
    {
        'name': '华仔仔coding',
        'age': 20,
        'gender': '男',
        'xuehao': '004'
    }
]
for i, item in enumerate(data):
    sheet.write(i+1, 0, item['name'])
    sheet.write(i + 1, 1, item['age'])
    sheet.write(i + 1, 2, item['gender'])
    sheet.write(i + 1, 3, item['xuehao'])
# 保存文件
my_workbook.save('test.xlsx')

代码解析:

  1. 首先,看一下 data, data 是一个列表类型变量,它的元素是字典类型,一共四个字典元素。
  2. 之后,再看一下 enumerate() 函数。该函数用于将一个可便利的数据对象(如列表、元组和字符串) 组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环中。
  3. 因此,在 for 循环中的变量 i 代表的是列表中遍历到的当前字典的下标,item 代表的是当前遍历到的字典的值, item[‘name’] 表示根据键 ‘name’, 获取键对应的值。
  4. 最后,对于 enumerate() 函数的使用,再举一个例子。例如:words = [‘A’, ‘B’, ‘C’, ‘D’]. for i, word in enumerate(words): print(i, element). 它的输出结果应该是 0, ‘A’ ‘1’, ‘B’, ‘2’, ‘C’, ‘3’, ‘D’.

3. 总结

通过上面的学习,相信大家对 xlwt第三方库的安装以及使用第三方库向Excel 中写入数据的方法有了一定的掌握。如果想要了解更多关于 xlwt 模块的方法,可以参考官网文档哦!

到此这篇关于利用Python第三方库xlwt写入数据到Excel工作表的文章就介绍到这了,更多相关Python xlwt写入数据到Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python导出mysql指定binlog文件实现demo

    python导出mysql指定binlog文件实现demo

    这篇文章主要介绍了python导出mysql指定binlog文件实现demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Tensorflow训练模型默认占满所有GPU的解决方案

    Tensorflow训练模型默认占满所有GPU的解决方案

    这篇文章主要介绍了Tensorflow训练模型默认占满所有GPU的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 为什么Python中没有

    为什么Python中没有"a++"这种写法

    一开始学习 Python 的时候习惯性的使用 C 中的 a++ 这种写法,发现会报 SyntaxError: invalid syntax 错误,为什么 Python 没有自增运算符的这种写法呢?下面小编给大家带来本文帮助大家了解下这方面的知识
    2018-11-11
  • python Web应用程序测试selenium库使用用法详解

    python Web应用程序测试selenium库使用用法详解

    selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题本文详细介绍了在python中selenium模块的使用方法
    2021-10-10
  • python动态监控日志内容的示例

    python动态监控日志内容的示例

    本文介绍如何使用Python动态监控程序日志的内容,这里的动态指的是日志文件不断的追加新的日志内容,动态监控是指监控日志新追加的日志内容
    2014-02-02
  • 详解Python文件修改的两种方式

    详解Python文件修改的两种方式

    这篇文章主要介绍了详解Python文件修改的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 利用numpy+matplotlib绘图的基本操作教程

    利用numpy+matplotlib绘图的基本操作教程

    这篇文章主要给大家介绍了利用numpy+matplotlib绘图的基本操作,文中介绍的非常详细,对大家学习matplotlib绘图具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2017-05-05
  • python线程如何强制暂停、恢复、停止(非标志位)

    python线程如何强制暂停、恢复、停止(非标志位)

    这篇文章主要介绍了python线程如何强制暂停、恢复、停止(非标志位),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python中TCP协议的探索与实例解析

    Python中TCP协议的探索与实例解析

    网络编程在当今数字化世界中扮演着至关重要的角色,本文将带你深入了解 Python 中的 TCP 协议,介绍网络编程的基础知识,并提供丰富的示例代码,希望对大家有所帮助
    2023-12-12
  • python学习Selenium介绍及安装部署详解

    python学习Selenium介绍及安装部署详解

    这篇文章主要为大家介绍了python学习中Selenium介绍以及如何安装部署的详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10

最新评论