【python】如何將文件夾及其子文件夾下的所有word文件匯總導出到一個excel文件里?

根據你的需求,這里提供一套完整的Python解決方案,支持遞歸遍歷子文件夾、提取Word文檔內容(段落+表格),并整合到Excel中。以下是代碼實現及詳細說明:

一個單元格一個word的全部內容


完整代碼

# -*- coding: utf-8 -*-
import os
from docx import Document
import pandas as pd
from tqdm import tqdm  # 需安裝:pip install tqdmdef extract_word_content(doc_path):"""提取Word文檔中的段落和表格內容"""try:doc = Document(doc_path)content = []# 提取段落文本for para in doc.paragraphs:if para.text.strip():content.append(('paragraph', para.text))# 提取表格內容(按行合并)for table in doc.tables:for row in table.rows:row_text = ' | '.join([cell.text.strip() for cell in row.cells])content.append(('table_row', row_text))return '\n'.join([f"[{type}] {text}" for type, text in content])except Exception as e:return f"Error reading file: {str(e)}"def process_folder(root_folder):"""遍歷文件夾并提取所有Word文檔"""data = []# 遍歷所有子文件夾for root, _, files in os.walk(root_folder):# 篩選Word文件(兼容.doc和.docx)word_files = [f for f in files if f.lower().endswith(('.doc', '.docx'))]# 顯示進度條(需安裝tqdm)for file in tqdm(word_files, desc=f"Processing {os.path.basename(root)}"):file_path = os.path.join(root, file)content = extract_word_content(file_path)data.append({"文件名": file,"完整路徑": file_path,"文件內容": content})return pd.DataFrame(data)if __name__ == "__main__":# 配置參數folder_path = r"C:\Users\esensoft\Desktop\報名推薦"  # 修改為實際路徑output_excel = "匯總結果.xlsx"# 執行處理df = process_folder(folder_path)# 導出Excel(自動處理格式)with pd.ExcelWriter(output_excel, engine='openpyxl') as writer:df.to_excel(writer, index=False, sheet_name='文檔匯總')# 自動調整列寬for column in df.columns:max_len = max(df[column].astype(str).map(len).max(), len(column))writer.sheets['文檔匯總'].column_dimensions[writer.sheets['文檔匯總'].cell(row=

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80139.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80139.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80139.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode-位運算

位運算 371. 兩整數之和 題目 給你兩個整數 a 和 b ,不使用 運算符 和 - ,計算并返回兩整數之和。 示例 1: 輸入: a 1, b 2 輸出: 3 示例 2: 輸入: a 2, b 3 輸出: 5 提示&am…

飛帆控件:在編輯模式下額外加載的庫

飛帆是一個自由的控件設計平臺。在飛帆中,我們可以很方便地創建基于 Vue 2 組件的控件,并使用控件來搭建網頁。 他山之石,可以攻玉。在創建控件中,使用 js 、css 依賴庫能讓我們的控件更強大。 有些時候,在編輯模式下…

GPLT-2025年第十屆團體程序設計天梯賽總決賽題解(共計266分)

今天偶然發現天梯賽的代碼還保存著,于是決定寫下這篇題解,也算是復盤一下了 L1本來是打算寫的穩妥點,最后在L1-6又想省時間,又忘記了insert,replace這些方法怎么用,也不想花時間寫一個文件測試&#xff0c…

編碼轉換器

大批量轉換編碼 可以將整個工程文件夾從GB18030轉為UTF-8 使用Qt C制作 項目背景 比較老的工程,尤其是keil嵌入式的工程,其文本文件(.c、.cpp、.h、.txt、……)編碼為gb2312,這為移植維護等帶來了不便。現在uit-8用…

STL 核心模塊

很好!你想深入 STL(Standard Template Library)和容器算法,是學習 C 非常關鍵的一步。下面我給你整理一份STL 容器 算法的入門指南,適合從零起步掌握這部分內容。 🌟 一、STL 核心模塊 STL 分為三大塊&am…

2024沈陽區域賽,D - Dot Product Game

題目鏈接 樹狀數組求逆序對 #include<bits/stdc.h> using namespace std; using lllong long; typedef pair<int,int>PII; typedef priority_queue<int> upq; typedef priority_queue<int,vector<int>,greater<int>> dpq; const int M99…

簡易博客點贊系統實現

簡易博客點贊系統 好久沒寫 Java 了&#xff0c;整個簡單的項目進行康復訓練。 基于 Spring Boot SSM MySQL Mybatis-Plus Knife4j Swagger 的一個簡易博客點贊系統 開源地址&#xff1a;https://github.com/FangMoyu/simple-thumb 功能 登錄獲取當前登錄用戶獲取博客…

一個既簡單又詭異的問題

public class DaYaoGuai {static String s;public static void main(String[] args) {Thread t1 new Thread(){Overridepublic void run() {try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}s"深圳";}};t1.start();Thre…

使用docker在manjaro linux系統上運行windows和ubuntu

因為最近項目必須要使用指定版本的solidworks和maxwell&#xff08;都只能在win系統上使用&#xff09;, 且目前的ubuntu容器是沒有桌面的&#xff0c;導致我運行不了一些帶圖形的ros2功能。無奈之下&#xff0c;決定使用docker-compose寫一下配置文件&#xff0c;徹底解決問題…

Elasticsearch中的_source字段講解

_source 在 Elasticsearch 查詢中用于限制返回的字段,類似于 SQL 中的 SELECT 指定列。 代碼示例: esSearchResults = es_service.search_documents({"query": {"terms": {"file_id":

【論文閱讀20】-CNN-Attention-BiGRU-滑坡預測(2025-03)

這篇論文主要探討了基于深度學習的滑坡位移預測模型&#xff0c;結合了MT-InSAR&#xff08;多時相合成孔徑雷達干涉測量&#xff09;觀測數據&#xff0c;提出了一種具有可解釋性的滑坡位移預測方法。 [1] Zhou C, Ye M, Xia Z, et al. An interpretable attention-based deep…

C++ 的 IO 流

&#x1f4ac; &#xff1a;如果你在閱讀過程中有任何疑問或想要進一步探討的內容&#xff0c;歡迎在評論區暢所欲言&#xff01;我們一起學習、共同成長~&#xff01; &#x1f44d; &#xff1a;如果你覺得這篇文章還不錯&#xff0c;不妨順手點個贊、加入收藏&#xff0c;并…

spring cloud gateway前面是否必須要有個nginx

在 **"客戶端 → Nginx (前置限流) → Spring Cloud Gateway → 微服務(Sentinel 熔斷限流)"** 的架構中&#xff0c;**Spring Cloud Gateway 前面并不強制要求必須有 Nginx**&#xff0c;是否需要取決于具體場景。以下是詳細分析&#xff1a; 一、必須使用 Nginx 的…

Spark和Hadoop之間的對比和聯系

&#xff08;一&#xff09;Spark概述 Spark是一種基于內存的快速、通用、可拓展的大數據分析計算引擎。Hadoop是一個分布式系統基礎架構。 1&#xff09;官網地址&#xff1a;Apache Spark? - Unified Engine for large-scale data analytics 2&#xff09;文檔查看地址&…

多線程進階(Java)

注&#xff1a;此博文為本人學習過程中的筆記 1.常見的鎖策略 當我們需要自己實現一把鎖時&#xff0c;需要關注鎖策略。Java提供的synchronized已經非常好用了&#xff0c;覆蓋了絕大多數的使用場景。此處的鎖策略并不是和Java強相關的&#xff0c;只要涉及到并發編程&#…

c++STL——stack、queue、priority_queue的模擬實現

文章目錄 stack、queue、priority_queue的模擬實現使用部分模擬實現容器適配器deque的介紹原理真實結構deque的迭代器deque的操作deque的優缺點 stack的模擬實現按需實例化queue的模擬實現priority_queue的模擬實現為何引入仿函數代碼實現 stack、queue、priority_queue的模擬實…

【深度學習—李宏毅教程筆記】Transformer

目錄 一、序列到序列&#xff08;Seq2Seq&#xff09;模型 1、Seq2Seq基本原理 2、Seq2Seq模型的應用 3、Seq2Seq模型還能做什么&#xff1f; 二、Encoder 三、Decoder 1、Decoder 的輸入與輸出 2、Decoder 的結構 3、Non-autoregressive Decoder 四、Encoder 和 De…

C++鐫刻數據密碼的樹之銘文:二叉搜索樹

文章目錄 1.二叉搜索樹的概念2.二叉搜索樹的實現2.1 二叉搜索樹的結構2.2 二叉搜索樹的節點尋找2.2.1 非遞歸2.2.2 遞歸 2.3 二叉搜索樹的插入2.3.1 非遞歸2.3.2 遞歸 2.4 二叉搜索樹的刪除2.4.1 非遞歸2.4.2 遞歸 2.5 二叉搜索樹的拷貝 3.二叉樹的應用希望讀者們多多三連支持小…

系統架構設計師:流水線技術相關知識點、記憶卡片、多同類型練習題、答案與解析

流水線記憶要點? ?公式 總時間 (n k - 1)Δt 吞吐率 TP n / 總時間 → 1/Δt&#xff08;max&#xff09; 加速比 S nk / (n k - 1) | 效率 E n / (n k - 1) 關鍵概念 周期&#xff1a;最長段Δt 沖突?&#xff1a; ?數據沖突&#xff08;RAW&#xff09; → 旁路/…

強制重裝及驗證onnxruntime-gpu是否正確工作

#工作記錄 我們經常會遇到明明安裝了onnxruntime-gpu或onnxruntime后&#xff0c;無法正常使用的情況。 一、強制重新安裝 onnxruntime-gpu 及其依賴 # 強制重新安裝 onnxruntime-gpu 及其依賴 pip install --force-reinstall --no-cache-dir onnxruntime-gpu1.18.0 --extra…