Python实现Word表格转Excel时删除指定行列及插入图片的方法
前置依赖安装
执行以下命令安装所需第三方库:pip install python-docx pandas openpyxl
调整后完整代码
from docx.api import Document import pandas as pd from openpyxl import load_workbook from openpyxl.drawing.image import Image # 读取docx文档 document = Document("D:/tmp/test.docx") tables = document.tables data_list = [] # 提取表格内容(替换原废弃的append方法,适配高版本pandas) for table in tables: for row in table.rows: row_text = [cell.text for cell in row.cells] data_list.append(row_text) df = pd.DataFrame(data_list) # 给列赋值(根据实际列数调整,示例是2列,若列数更多可扩展) df.columns = ["Column1", "Column2"] # ========== 功能1:删除指定行和列 ========== # 删除索引为0、1、2的行 df = df.drop(index=[0,1,2]).reset_index(drop=True) # 删除列索引为0、1、2的列,*注意:示例只有2列,直接运行会报错,请根据实际列数调整索引,比如只删前2列可写[0,1]* # df = df.drop(columns=df.columns[[0,1,2]], axis=1).reset_index(drop=True) # 导出基础Excel文件 excel_path = "D:/tmp/test.xlsx" df.to_excel(excel_path, index=False) # ========== 功能2:插入图片到Excel ========== wb = load_workbook(excel_path) ws = wb.active # 替换为你自己的图片路径 img = Image("D:/tmp/test_pic.png") # 调整图片尺寸(可选) img.width, img.height = 300, 200 # 指定图片插入的单元格位置(示例为A10,可自定义) ws.add_image(img, "A10") # 保存修改后的Excel wb.save(excel_path) print(df)
代码说明
- 原代码使用的
df.append方法在pandas 2.0及以上版本已经废弃,调整为用列表先收集所有行数据再统一生成DataFrame,运行效率更高也兼容新版本 - 删除行列操作可根据你的实际数据量调整索引值,原示例数据只有3行,删除0/1/2行后会得到空表,实际使用请确认你的docx表格有更多行
- 插入图片功能可自定义图片路径、尺寸、插入位置,满足不同场景需求
内容的提问来源于stack exchange,提问作者user15352018
相关产品推荐
相关产品推荐

