Python实现对Word文档中的表格进行读取并转换成Excel表格?
简单实现
要实现对Word文本中的表格进行读取并转换成Excel表格,你可以使用Python的python-docx库来处理Word文档,以及openpyxl库来处理Excel文件。下面是一个示例代码,演示了如何实现这一功能。
首先,确保你已经安装了所需的库。如果没有按照请按照如下的方式进行安装。
pip install python-docx openpyxl
安装完成之后,就开始编写代码。如下所示,引入需要的文档对象。
from docx import Document
from openpyxl import Workbook
自定义个方法,传入需要转换的文档,以及转换完成之后的文档名称。在这个示例中,我们定义了一个
convert_word_table_to_excel()函数,该函数接收Word文件的路径和Excel文件的路径作为参数。函数首先打开Word文档,然后遍历文档中的每个表格,并将每个表格中的数据写入到一个新的Excel工作表中。最后,将新的Excel工作表保存为Excel文件。
def convert_word_table_to_excel(word_file, excel_file):
# 打开Word文档
doc = Document(word_file)
# 创建一个新的Excel工作簿
wb = Workbook()
# 选择活动的工作表
ws = wb.active
for table in doc.tables:
for row in table.rows:
# 将Word表格中的每一行数据写入Excel中
excel_row = []
for cell in row.cells:
excel_row.append(cell.text)
ws.append(excel_row)
# 保存Excel文件
wb.save(excel_file)
编写测试方法
# 测试
word_file = 'input.docx' # Word文件路径
excel_file = 'output.xlsx' # Excel文件路径
convert_word_table_to_excel(word_file, excel_file)
print("转换完成!")
你只需要将word_file和excel_file变量设置为你实际的Word文件路径和想要保存的Excel文件路径,然后运行代码即可将Word文档中的表格转换成Excel表格。
全量代码
from docx import Document
from openpyxl import Workbook
def convert_word_table_to_excel(word_file, excel_file):
# 打开Word文档
doc = Document(word_file)
# 创建一个新的Excel工作簿
wb = Workbook()
# 选择活动的工作表
ws = wb.active
for table in doc.tables:
for row in table.rows:
# 将Word表格中的每一行数据写入Excel中
excel_row = []
for cell in row.cells:
excel_row.append(cell.text)
ws.append(excel_row)
# 保存Excel文件
wb.save(excel_file)
# 测试
word_file = 'input.docx' # Word文件路径
excel_file = 'output.xlsx' # Excel文件路径
convert_word_table_to_excel(word_file, excel_file)
print("转换完成!")
将每个表格单独存储到不同的Excel中
如果你希望将每个表格保存成单独的Excel文件,可以对代码稍作修改,如下所示。
from docx import Document
from openpyxl import Workbook
def extract_tables_from_word(word_file_path):
# 打开Word文档
doc = Document(word_file_path)
# 遍历Word文档中的每个表格
for i, table in enumerate(doc.tables):
# 创建一个新的Excel工作簿
wb = Workbook()
ws = wb.active
# 遍历Word表格中的每一行
for row_idx, row in enumerate(table.rows):
# 遍历行中的每个单元格
for col_idx, cell in enumerate(row.cells):
# 将单元格的文本写入Excel表格中的对应位置
ws.cell(row=row_idx+1, column=col_idx+1, value=cell.text)
# 删除默认创建的Sheet
wb.remove(wb['Sheet'])
# 保存Excel文件,以表格索引号命名
wb.save(f'Table_{i+1}.xlsx')
# 调用函数并指定输入Word文件路径
extract_tables_from_word('input.docx')
这样,每个表格将被保存成单独的Table_1.xlsx、Table_2.xlsx等Excel文件。
总结
到这里展示了两种提取Word文档种的表格并且转换到Excel表格中的方式,可以将表格存储到不同的Sheet页,也可以将表格存储到不同的文件中。