Python 替换excel 单元格内容

发布于:2025-02-10 ⋅ 阅读:(101) ⋅ 点赞:(0)

要在Python中替换Excel单元格的内容,你可以使用openpyxl库。openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。

  1. 安装openpyxl
    首先,你需要安装openpyxl库。如果还没有安装,可以使用pip进行安装:
pip install openpyxl
  1. 编写脚本
    以下是一个完整的Python脚本示例,用于替换Excel文件中指定单元格的内容:
import openpyxl

def replace_cell_content(file_path, sheet_name, cell_address, new_value):
    # 加载Excel工作簿
    workbook = openpyxl.load_workbook(file_path)
    
    # 选择工作表
    sheet = workbook[sheet_name]
    
    # 替换指定单元格的内容
    sheet[cell_address].value = new_value
    
    # 保存工作簿
    workbook.save(file_path)
    print(f"单元格 {cell_address} 的内容已替换为 {new_value}")

if __name__ == "__main__":
    # Excel文件路径
    file_path = 'example.xlsx'
    
    # 工作表名称
    sheet_name = 'Sheet1'
    
    # 要替换的单元格地址
    cell_address = 'A1'
    
    # 新的单元格内容
    new_value = '新内容'
    
    # 替换单元格内容
    replace_cell_content(file_path, sheet_name, cell_address, new_value)
  1. 运行脚本
    将上述脚本保存为一个Python文件(例如replace_excel_cell.py),然后在命令行中运行:
python replace_excel_cell.py
  1. 注意事项
    文件路径:确保file_path指向正确的Excel文件路径。
    工作表名称:确保sheet_name与Excel文件中的工作表名称一致。
    单元格地址:cell_address应为有效的单元格地址,例如A1、B2等。
    保存文件:workbook.save(file_path)会覆盖原始文件。如果你不想覆盖原始文件,可以保存为一个新文件:
new_file_path = 'new_example.xlsx'
workbook.save(new_file_path)
  1. 扩展功能
    你可以根据需要扩展脚本的功能,例如:

批量替换:遍历多个单元格并进行替换。

条件替换:根据条件替换单元格内容。

读取单元格内容:在替换之前读取单元格的当前内容。

  1. 批量替换多个单元格的内容:
import openpyxl

def batch_replace_cell_content(file_path, sheet_name, cell_addresses, new_values):
    # 加载Excel工作簿
    workbook = openpyxl.load_workbook(file_path)
    
    # 选择工作表
    sheet = workbook[sheet_name]
    
    # 批量替换单元格内容
    for cell_address, new_value in zip(cell_addresses, new_values):
        sheet[cell_address].value = new_value
        print(f"单元格 {cell_address} 的内容已替换为 {new_value}")
    
    # 保存工作簿
    workbook.save(file_path)

if __name__ == "__main__":
    # Excel文件路径
    file_path = 'example.xlsx'
    
    # 工作表名称
    sheet_name = 'Sheet1'
    
    # 要替换的单元格地址列表
    cell_addresses = ['A1', 'B2', 'C3']
    
    # 新的单元格内容列表
    new_values = ['新内容1', '新内容2', '新内容3']
    
    # 批量替换单元格内容
    batch_replace_cell_content(file_path, sheet_name, cell_addresses, new_values)