当需要批量修改 Excel 数据时,我们可以借助 Python 的 xlrd 和 xlwt 库操作 Excel 文件。下面是一个 Python 脚本操作 Excel 实现批量替换功能的完整实例教程:
第一步:安装 xlrd 和 xlwt 库
我们可以使用 pip 安装这两个库。
pip install xlrd xlwt
第二步:打开 Excel 文件
我们使用 xlrd 库读取 Excel 文件,先打开 Excel 文件。
import xlrd
# 打开 Excel 文件
workbook = xlrd.open_workbook("example.xlsx")
第三步:获取工作表
我们可以使用 workbook.sheet_by_index() 或 workbook.sheet_by_name() 方法获取工作表。
# 获取工作表
sheet = workbook.sheet_by_name("Sheet1")
第四步:遍历 Excel 数据
我们使用 sheet.nrows 和 sheet.ncols 属性获取 Excel 表格的行数和列数,然后使用 for 循环遍历每个单元格。
# 遍历 Excel 数据
for i in range(sheet.nrows):
for j in range(sheet.ncols):
cell = sheet.cell(i, j)
# 操作单元格的值...
# 更好的方式是使用 itertools 中的 product 函数
for i, j in product(range(sheet.nrows), range(sheet.ncols)):
cell = sheet.cell(i, j)
# 操作单元格的值...
第五步:修改单元格的值
我们可以使用 xlwt 库的相应方法修改单元格的值,如果需要修改多个单元格的值,可以在遍历单元格时判断单元格内容是否需要被修改,是的话再进行修改。
import xlwt
# 创建一个可以写入 Excel 文件的对象
workbook = xlwt.Workbook()
# 创建一个工作表
worksheet = workbook.add_sheet('Sheet1')
# 写入数据
for i in range(sheet.nrows):
for j in range(sheet.ncols):
cell = sheet.cell(i, j)
# 操作单元格的值...
worksheet.write(i, j, new_value)
# 保存文件
workbook.save("new_example.xlsx")
示例一:替换 Excel 中符合条件的值
下面是一个示例,当 Excel 表格中有单元格的值为 “yes” 时,把它替换为 “no”。
import xlrd
import xlwt
import os
# 打开 Excel 文件
workbook = xlrd.open_workbook("example.xlsx")
# 获取工作表
sheet = workbook.sheet_by_name("Sheet1")
# 创建一个可以写入 Excel 文件的对象
new_workbook = xlwt.Workbook()
# 创建一个工作表
new_sheet = new_workbook.add_sheet('Sheet1')
# 写入数据
for i in range(sheet.nrows):
for j in range(sheet.ncols):
cell = sheet.cell(i, j)
if cell.value == "yes":
new_sheet.write(i, j, "no")
else:
new_sheet.write(i, j, cell.value)
# 保存文件
if os.path.exists("new_example.xlsx"):
os.remove("new_example.xlsx")
new_workbook.save("new_example.xlsx")
示例二:把 Excel 中的小写字母替换为大写字母
下面是另一个示例,当 Excel 表格中有小写字母时,把它转换为大写字母。
import xlrd
import xlwt
os
# 打开 Excel 文件
workbook = xlrd.open_workbook("example.xlsx")
# 获取工作表
sheet = workbook.sheet_by_name("Sheet1")
# 创建一个可以写入 Excel 文件的对象
new_workbook = xlwt.Workbook()
# 创建一个工作表
new_sheet = new_workbook.add_sheet('Sheet1')
# 写入数据
for i in range(sheet.nrows):
for j in range(sheet.ncols):
cell = sheet.cell(i, j)
if cell.ctype == xlrd.XL_CELL_TEXT and cell.value.islower():
new_sheet.write(i, j, cell.value.upper())
else:
new_sheet.write(i, j, cell.value)
# 保存文件
if os.path.exists("new_example.xlsx"):
os.remove("new_example.xlsx")
new_workbook.save("new_example.xlsx")
以上就是使用 Python 脚本实现 Excel 数据替换的完整教程。