这篇文章主要介绍“怎么利用Python第三方库xlwt写入数据到Excel工作表”,在日常操作中,相信很多人在怎么利用Python第三方库xlwt写入数据到Excel工作表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么利用Python第三方库xlwt写入数据到Excel工作表”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Python 写入数据到 Excel 工作簿中可以使用第三方库 xlwt. xlwt 拆分下来看就是 excel 和 write 的简化拼接,意思就是写数据到 Excel. 这个第三方库的 pip 安装命令如下所示:
pip install xlwt -i https://mirrors.aliyun.com/pypi/simple
xlwt 的安装方式和 xlrd 的安装方式一样,不过这里 xlwt 没有指定版本,直接用默认版本就好,其他的不再赘述了。
使用 xlwt 写入到 Excel 工作簿支持两种扩展名:xls 和 xlsx. 这两种扩展名代表两种不同的 Excel 版本。
xls 为 Excel 2003 及以前的版本扩展名,支持的最大行数为 65536, 最大列数为 256. 而 xlsx 为 Excel 2007 及以后的版本扩展名,它的最大支持行数为 1048576, 最大支持列数为 16384.
需要注意的是,Excel 2007 及之后版本可以打开上述两种格式文件,而 Excel 2003 版本只能打开 xls 格式文件。
因为这篇教程是看完 《使用 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')
代码解析:
首先,通过 Workbook() 方法新建一个工作簿对象
之后,通过 add_sheet() 方法新建一个 Sheet 表,表名为 ‘test_sheet’, 这个可以根据需求自定义。
然后,又通过 write() 方法写入数据,方法中的参数分别为单元格横坐标、纵坐标和单元格数据。
最后,使用 save() 方法保存文件,参数为文件名字符串。
那么在 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.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')
代码解析:
首先,看一下 data, data 是一个列表类型变量,它的元素是字典类型,一共四个字典元素。
之后,再看一下 enumerate() 函数。该函数用于将一个可便利的数据对象(如列表、元组和字符串) 组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环中。
因此,在 for 循环中的变量 i 代表的是列表中遍历到的当前字典的下标,item 代表的是当前遍历到的字典的值, item[‘name’] 表示根据键 ‘name’, 获取键对应的值。
最后,对于 enumerate() 函数的使用,再举一个例子。例如:words = [‘A’, ‘B’, ‘C’, ‘D’]. for i, word in enumerate(words): print(i, element). 它的输出结果应该是 0, ‘A’ ‘1’, ‘B’, ‘2’, ‘C’, ‘3’, ‘D’.
到此,关于“怎么利用Python第三方库xlwt写入数据到Excel工作表”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。