本文共 3101 字,大约阅读时间需要 10 分钟。
在进行数据处理时,Excel文件是非常常用的数据存储形式之一。对于Python开发者来说,能够方便地读取和写入Excel文件的库是日常工作中的重要工具。Python市场上有多个开源库可以实现Excel文件的读写操作,其中xlrd、xlwt、xlutils等是最常用的工具之一。本文将详细介绍这些库的特点以及如何使用它们来读取和写入Excel文件。
在Python中,常用的操作Excel的库包括以下几种:
.xls 格式的Excel文件数据。.xls 格式的Excel文件。.xlsx 格式的Excel文件。xlrd和xlwt模块实现 .xls 格式文件的读写操作。这些库各有特点,选择合适的库取决于具体需求。
.xls 和 .xlsx 格式的Excel文件,返回Excel工作簿和工作表的对象。.xls 格式的Excel文件,返回Excel工作簿和工作表的对象。虽然两者操作的对象不同,但它们都非常适合处理Excel文件的读写操作。xlrd和xlwt的主要优点是操作流程清晰,支持多层表头结构(与pandas的dataframe不同)。
xlutils模块是xlrd和xlwt之间的桥梁。通过xlutils,可以将xlrd读取到的Excel文件直接转换为可写的xlwt对象,从而实现读写操作的无缝连接。xlutils的核心功能是通过copy模块中的copy函数,将xlrd的Book对象复制转换为xlwt的Workbook对象。
除了上述库,以下是一些其他常用的Excel文件操作库:
.xlsx 格式的Excel文件,功能强大。.xls 和 .xlsx 格式的Excel文件,输出为dataframe格式。更多Excel文件操作库可以参考以下链接:
xlrd:在命令提示符窗口中运行以下命令:
pip install xlrd
如果需要指定版本:
pip install xlrd==2.1.0
xlwt:在命令提示符窗口中运行以下命令:
pip install xlwt
如果需要指定版本:
pip install xlwt==1.3.0
xlutils:在命令提示符窗口中运行以下命令:
pip install xlutils
如果需要指定版本:
pip install xlutils==2.0.0
pip show xlrd
pip show xlwt
pip show xlutils
在使用xlrd读取Excel文件之前,需要准备好Excel文件(如.xls或.xlsx文件)。以下是使用xlrd读取Excel文件的基本流程:
import xlrd# 假设 filepath 是 Excel 文件的路径data = xlrd.open_workbook(filepath)
运行结果会返回一个 xlrd.book.Book 对象。
# 获取工作簿中的工作表数量sheet_count = data.nsheets# 获取所有工作表对象sheets = data.sheets()# 获取工作表名称列表sheet_names = data.sheet_names()# 通过索引获取工作表对象sheet = data.sheet_by_index(1)# 通过名称获取工作表对象sheet = data.sheet_by_name('绩效成绩') # 获取工作表中的有效行数和列数row_count = sheet.nrowscol_count = sheet.ncols# 获取指定行的单元格对象row_object = sheet.row(1)# 获取指定行的单元格内容row_content = sheet.row_values(1)# 获取指定行的单元格数据类型row_type = sheet.row_types(1)# 获取指定行的单元格长度row_length = sheet.row_len(1)# 获取工作表所有行的生成器rows_generator = sheet.get_rows()list_generator = list(rows_generator)
# 获取指定单元格内容cell_value = sheet.cell_value(1, 1)# 获取指定单元格对象cell_object = sheet.cell(1, 1)# 获取指定单元格数据类型cell_type = sheet.cell_type(1, 1)# 获取指定单元格内容的类型cell_content_type = type(sheet.cell_value(1, 1))
假设我们有一个名为 xlrd实例文件.xlsx 的Excel文件,文件内容如下:
| 姓名 | 工号 | 绩效成绩 |
|---|---|---|
| 小红 | 2021001 | 100 |
| 小橙 | 2021002 | 100 |
| 小黄 | 2021003 | 90 |
目标:通过xlrd读取绩效成绩工作表,计算每个员工的绩效工资(绩效成绩 × 10),并将结果写入新的Excel文件。
import xlrd# 打开 Excel 文件data = xlrd.open_workbook("xlrd实例文件.xlsx")# 获取绩效成绩工作表performance_sheet = data.sheet_by_name('绩效成绩')# 获取除表头外的所有行rows_generator = list(performance_sheet.get_rows())[1:]# 初始化存储结果的列表row_list = []# 遍历每一行数据for row in rows_generator: name = row[0].value number = row[1].value score = row[2].value money = score * 10 row_list.append((name, number, money))# 打印结果print(row_list) 通过以上内容,我们可以看到,xlrd是一个非常方便的库,可以用来读取Excel文件的结构化数据。虽然它的操作流程稍微复杂一些,但它的灵活性和对多层表头结构的支持使其在数据处理中非常有用。
转载地址:http://obofk.baihongyu.com/