
本文共 2450 字,大约阅读时间需要 8 分钟。
使用 xlwt 和 xlrd 读写 Excel 文件
在 Python 中,xlwt 和 xlrd 是两个相互配套的模块,用于将数据写入 Excel 文件和从 Excel 文件读取数据。本文将详细介绍如何使用这两个库来进行读写操作。
安装库
首先,我们需要安装 xlwt 和 xlrd。打开终端,运行以下命令:
pip install xlwtpip install xlrd
使用 xlwt 写入 Excel 文件
假设我们有一个包含数据的列表,例如:
xlwt_data = [ ('有', '人', '云', '淡', '风', '轻'), ('有', '人', '负', '重', '前', '行'), ('p', 'y', 't', 'h', 'o', 'n')]
我们选择一个文件名 xlwt_file.xls
,编写一个函数 save_excel
来实现写入操作。
代码解析
def save_excel(target_list, output_file_name): """将数据写入xls文件""" if not output_file_name.endswith('.xls'): output_file_name += '.xls' workbook = xlwt.Workbook(encoding='utf-8') ws = workbook.add_sheet("sheet1") title_data = ('a', 'b', 'c', 'd', 'e', 'f') target_list.insert(0, title_data) rows = len(target_list) cols = len(target_list[0]) for i in range(rows): for j in range(cols): ws.write(i, j, target_list[i][j]) workbook.save(output_file_name)
步骤说明
创建工作簿:使用 xlwt.Workbook()
创建一个新的工作簿对象,指定编码为 utf-8
。
添加工作表:使用 add_sheet("sheet1")
创建一个名为 sheet1
的工作表。
插入标题行:将标题数据预先插入到目标数据的第一行,确保每一列的数据对齐。
遍历数据写入:使用双重循环,逐个单元格将数据写入工作表中。
保存文件:调用 workbook.save(output_file_name)
生成并保存 Excel 文件。
运行结果
运行上述代码后,Excel 文件 xlwt_file.xls
将出现在项目目录下。打开该文件,数据将正确显示在 sheet1
工作表中。
使用 xlrd 读取 Excel 文件
接下来,我们学习如何使用 xlrd 读取 Excel 文件中的数据。
代码解析
def read_excel(input_file_name): """从xls文件中读取数据""" workbook = xlrd.open_workbook(input_file_name) print(workbook) # 获取所有工作表名 sheet_names = workbook.sheet_names() print(sheet_names) # 获取并打印第一张工作表 table = workbook.sheet_by_name('sheet1') print(table) # 获取行数和列数 rows = table.nrows cols = table.ncols # 读取整行数据 for row in range(rows): row_data = table.row_values(row) print(''.join(row_data)) # 单独读取单元格值 for row in range(rows): for col in range(cols): data = table.cell(row, col).value print(data, end=' ')
步骤说明
打开工作簿:使用 xlrd.open_workbook(input_file_name)
打开 Excel 文件,返回一个 workbook
对象。
获取工作表名:调用 sheet_names()
方法获取工作簿中的所有工作表名称。
获取表格对象:使用 sheet_by_name('sheet1')
获取名为 sheet1
的工作表。
获取行列数:nrows
和 ncols
返回工作表的行数和列数。
读取整行数据:使用 row_values()
方法逐行读取数据。
逐个单元格读取:使用 cell(row, col).value
读取指定单元格的值。
运行结果
运行代码后,会打印出工作簿对象、工作表名称、行列数、整行数据及单独单元格值。例如:
['sheet1'] a b c d e f 有 人 云 淡 风 轻 有 人 负 重 前 行 p y t h o n
总结
通过以上步骤,我们学会了如何使用 xlwt 和 xlrd 在 Python 中高效地读写 Excel 文件。 xlwt 逐个单元格写入数据,简单且可靠; xlrd 提供多种读取方式,适用于不同需求。
发表评论
最新留言
关于作者
