颂风侯 发表于 2024-11-19 09:52:08

读入word多张表,导出到excel

用tkinter指定一个.doc或者.docx的文件,
再用tkinter指定一个文件夹位置


将.doc或者.docx的文件中所有的表格按以下要求导出数据
1、去除前四行数据
2、去除空行


导出的数据,在指定的文件夹位置新建一个名字为“整理数据.xlsx”,将数据保存到这个excel文件中去

FishC 发表于 2024-11-19 10:24:00

下面是一个基本的Python示例,使用`tkinter`库来选择文件和文件夹,并使用`pandas`、`openpyxl`库来处理Word文件和导出Excel文件。

首先,你需要安装所需的Python库:
pip install pandas openpyxl python-docx

以下是实现的示例代码:

import tkinter as tk
from tkinter import filedialog
import pandas as pd
from docx import Document

def select_word_file():
    file_path = filedialog.askopenfilename(filetypes=[("Word files", "*.doc;*.docx")])
    return file_path

def select_folder():
    folder_path = filedialog.askdirectory()
    return folder_path

def process_word_file(file_path, output_folder):
    doc = Document(file_path)
    all_data = []

    for table in doc.tables:
      data = []
      # 获取表格的数据
      for row in table.rows:
            # 该行数据
            row_data =
            data.append(row_data)

      # 去除前四行和空行
      data = if any(cell.strip() for cell in row)]
      all_data.extend(data)

    # 转为DataFrame
    df = pd.DataFrame(all_data)
   
    # 保存到Excel
    output_path = f"{output_folder}/整理数据.xlsx"
    df.to_excel(output_path, index=False, header=False)
    print(f"数据导出到: {output_path}")

def main():
    root = tk.Tk()
    root.withdraw()# 隐藏主窗口
   
    word_file = select_word_file()
    if not word_file:
      print("未选择Word文件")
      return
   
    output_folder = select_folder()
    if not output_folder:
      print("未选择输出文件夹")
      return
   
    process_word_file(word_file, output_folder)

if __name__ == '__main__':
    main()

**说明:**
- 使用`tkinter`来实现文件和文件夹选择对话框。
- 使用`python-docx`库读取Word文件中的表格。
- 使用`pandas`将处理后的表格数据转换为DataFrame,然后保存为Excel文件。
- 处理数据时,去除表格的前四行,并删除空行。
- 保存Excel文件到指定文件夹,文件名为“整理数据.xlsx”。

请根据需要调整代码,确保所有库已正确安装。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 读入word多张表,导出到excel