Python如何仿照Excel按列合并逻辑将多份docx内容存入Excel不同列
实现方案
首先安装依赖库:
pip install python-docx
以下是和你原有Excel合并逻辑完全兼容的代码:
import os import pandas as pd from docx import Document paths = "替换为你的文件存放目录路径" v_all = [] for root, dirs, files in os.walk(paths): for t in files: full_path = os.path.join(root, t) # 处理Excel文件,逻辑和你原有代码一致 if t.endswith('.xlsx'): df = pd.read_excel(full_path, header=None, index_col=False) v_all.append(df) # 处理docx文件 if t.endswith('.docx'): doc = Document(full_path) # 读取所有非空段落文本 doc_content = [para.text.strip() for para in doc.paragraphs if para.text.strip()] # 转换为单列DataFrame,和Excel读取的格式统一 df_doc = pd.DataFrame(doc_content, columns=[None]) v_all.append(df_doc) # 按列合并所有文件,逻辑和你原有代码完全一致 conc = pd.concat(v_all, axis=1, ignore_index=True) # 导出合并结果到Excel conc.to_excel("合并结果.xlsx", index=False, header=False)
逻辑说明
- 每个docx文件读取后会生成单列的DataFrame,格式和你读取Excel得到的结构完全一致,所以合并逻辑不需要修改
- 遍历顺序和你原有逻辑保持一致,先读到的文件内容放在靠左的列,后读到的放在靠右的列,你示例中的docx1、docx2合并后就会生成第一列是docx1内容、第二列是docx2内容的Excel
- 如果不同文件的行数不一致,短文件末尾位置会自动补空值,和你原有Excel合并的行为完全相同
- 修正了你原有代码里路径拼接的问题:原来用
os.path.join(paths,t)的写法在有子目录时会找不到文件,现在改用遍历返回的root拼接完整路径,兼容子目录场景
内容的提问来源于stack exchange,提问作者Titan
相关产品推荐
相关产品推荐

