Python xlrd/xlsxwriter 操作 Excel 详解
在数据处理和分析领域,Excel 是一款广泛使用的工具。而 Python 作为一门强大的编程语言,通过 xlrd 和 xlsxwriter 库能够轻松地与 Excel 进行交互,实现读取和写入 Excel 文件的功能。本文将详细介绍这两个库的使用方法。
一、xlrd 读取 Excel 文件
xlrd 主要用于读取已有的 Excel 文件。首先需要安装该库(pip install xlrd)。
1. 打开 Excel 文件
import xlrd
# 打开 Excel 文件
workbook = xlrd.open_workbook('example.xlsx')
2. 获取工作表
# 获取第一个工作表
sheet = workbook.sheet_by_index(0)
# 也可以通过工作表名称获取
# sheet = workbook.sheet_by_name('Sheet1')
3. 读取数据
# 获取行数和列数
rows = sheet.nrows
cols = sheet.ncols
for row in range(rows):
for col in range(cols):
cell_value = sheet.cell_value(row, col)
print(cell_value)
二、xlsxwriter 写入 Excel 文件
xlsxwriter 用于创建新的 Excel 文件或向已有的文件中写入数据(需注意,它不能直接修改已有的 Excel 文件内容,而是重新创建)。同样先安装(pip install xlsxwriter)。
1. 创建工作簿和工作表
import xlsxwriter
# 创建工作簿
workbook = xlsxwriter.Workbook('new_example.xlsx')
# 创建工作表
worksheet = workbook.add_worksheet()
2. 写入数据
# 写入文本
worksheet.write('A1', '姓名')
worksheet.write('B1', '年龄')
# 写入数值
worksheet.write(1, 0, '张三')
worksheet.write(1, 1, 25)
3. 设置格式(可选)
# 创建格式对象
bold = workbook.add_format({'bold': True})
# 应用格式
worksheet.write('A1', '姓名', bold)
worksheet.write('B1', '年龄', bold)
4. 保存文件
workbook.close()
三、综合案例:读取一个 Excel 并处理后写入新文件
假设我们有一个包含学生成绩的 Excel 文件(scores.xlsx),第一列为姓名,第二列为成绩。我们要读取成绩,将大于 60 分的标记为“及格”,小于等于 60 分的标记为“不及格”,然后写入新的 Excel 文件(result.xlsx)。
import xlrd
import xlsxwriter
# 读取原始文件
read_workbook = xlrd.open_workbook('scores.xlsx')
read_sheet = read_workbook.sheet_by_index(0)
# 创建新文件
write_workbook = xlsxwriter.Workbook('result.xlsx')
write_worksheet = write_workbook.add_worksheet()
# 写入表头
write_worksheet.write('A1', '姓名')
write_worksheet.write('B1', '成绩')
write_worksheet.write('C1', '是否及格')
# 处理数据并写入
for row in range(1, read_sheet.nrows):
name = read_sheet.cell_value(row, 0)
score = read_sheet.cell_value(row, 1)
write_worksheet.write(row, 0, name)
write_worksheet.write(row, 1, score)
if score > 60:
write_worksheet.write(row, 2, '及格')
else:
write_worksheet.write(row, 2, '不及格')
write_workbook.close()
总结与建议
通过 xlrd 和 xlsxwriter 库,我们能够方便地在 Python 中对 Excel 文件进行读取和写入操作。在实际应用中,如果只是读取数据,xlrd 是很好的选择;如果需要创建新的 Excel 文件并写入数据,xlsxwriter 则能满足需求。对于更复杂的 Excel 操作,还可以结合其他库(如 pandas 等)。建议在处理大量数据时,注意内存的使用情况,避免因数据量过大导致程序崩溃。同时,在写入文件时,及时保存和关闭文件,确保数据的完整性。掌握这两个库的使用,能大大提高我们在数据处理工作中的效率。

