【python】将word文档内容转换为excel表格
在日常工作中,我们经常需要将Word文档中的内容提取并转换为Excel表格,以便进行数据分析和处理。本文将介绍如何使用Python编写一个简单的程序,将Word文档中的内容转换为Excel表格。
一.实例
使用以下word文档作为例子:
工具界面如下:
第一个弹窗选择对应的文档后选择打开:
第二个弹窗选择保存路径以及excel表格的名字:
生成后的效果如下:
二.环境准备
我们将使用tkinter库创建一个图形用户界面(GUI),使用python-docx库读取Word文档,并使用openpyxl库将内容写入Excel文件。
pip install python-docx openpyxl
三.代码实现
以下是完整的代码示例:
import tkinter as tk
from tkinter import filedialog
from docx import Document
import openpyxl
def convert_word_to_excel_full():
# 选择Word文件
word_file = filedialog.askopenfilename(filetypes=[("Word files", "*.docx")])
if not word_file:
return
# 创建Excel工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active
# 读取Word文档
doc = Document(word_file)
for paragraph in doc.paragraphs:
if paragraph.text.strip(): # 只处理非空段落
# 检查段落中是否包含#符号
parts = paragraph.text.split("#")
# 处理以#分割的内容
for part in parts:
if part.strip(): # 只处理非空部分
sheet.append([part.strip()]) # 将每个部分写入单独的单元格
# 添加一个空行以分隔不同段落
sheet.append([""]) # 添加空行以分隔段落
# 遍历文档中的表格
for table in doc.tables:
# 在表格前添加一个空行以分隔段落和表格
sheet.append([""]) # 添加空行以分隔
for row in table.rows:
row_data = []
for cell in row.cells:
row_data.append(cell.text)
sheet.append(row_data) # 将表格行写入Excel
# 保存Excel文件
excel_file = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=[("Excel files", "*.xlsx")])
if excel_file:
workbook.save(excel_file)
# 创建主窗口
root = tk.Tk()
root.title("Word to Excel Converter")
root.geometry("400x250") # 设置窗口大小
# 创建按钮
convert_button_full = tk.Button(root, text="Word文档转换为Excel", command=convert_word_to_excel_full, width=30)
convert_button_full.pack(pady=50) # 增加上下间距
# 运行主循环
root.mainloop()
四.代码解析
1.导入库:
import tkinter as tk
from tkinter import filedialog
from docx import Document
import openpyxl
– tkinter:用于创建图形用户界面(GUI)。
2.选择Word文件:
word_file = filedialog.askopenfilename(filetypes=[("Word files", "*.docx")])
if not word_file:
return
– 使用filedialog.askopenfilename方法让用户选择要转换的Word文件。如果用户没有选择文件,程序将返回,不继续执行。
3.创建Excel工作簿:
workbook = openpyxl.Workbook()
sheet = workbook.active
– 使用openpyxl.Workbook()创建一个新的Excel工作簿,并获取活动的工作表。
4. 读取Word文档:
doc = Document(word_file)
– 使用Document类读取用户选择的Word文档。
5. 处理段落内容:
for paragraph in doc.paragraphs:
if paragraph.text.strip(): # 只处理非空段落
parts = paragraph.text.split("#")
for part in parts:
if part.strip(): # 只处理非空部分
sheet.append([part.strip()]) # 将每个部分写入单独的单元格
sheet.append([""]) # 添加空行以分隔段落
– 遍历Word文档中的每个段落,检查段落是否为空。
6.处理表格内容:
for table in doc.tables:
sheet.append([""]) # 添加空行以分隔
for row in table.rows:
row_data = []
for cell in row.cells:
row_data.append(cell.text)
sheet.append(row_data) # 将表格行写入Excel
– 遍历Word文档中的表格,在表格前添加一个空行以分隔段落和表格。
7.保存Excel文件:
excel_file = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=[("Excel files", "*.xlsx")])
if excel_file:
workbook.save(excel_file)
– 使用filedialog.asksaveasfilename方法让用户选择保存的Excel文件名和位置。如果用户选择了文件名,则保存工作簿。
8.创建GUI:
root = tk.Tk()
root.title("Word to Excel Converter")
root.geometry("400x250") # 设置窗口大小
convert_button_full = tk.Button(root, text="Word文档转换为Excel", command=convert_word_to_excel_full, width=30)
convert_button_full.pack(pady=50) # 增加上下间距
root.mainloop()
– 创建主窗口,设置窗口标题和大小。
作者:师兄师兄怎么办