Python脚本操作Excel实现批量替换功能

  • Post category:Python

当需要批量修改 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 数据替换的完整教程。