影视公司网站模板,建立个人网站,全国公路工程信息网,个体户可以做网站吗在大数据处理与信息抽取领域中#xff0c;Word文档是各类机构和个人普遍采用的一种信息存储格式#xff0c;其中包含了大量的结构化和半结构化数据#xff0c;如各类报告、调查问卷结果、项目计划等。这些文档中的表格往往承载了关键的数据信息#xff0c;如统计数据、项目…在大数据处理与信息抽取领域中Word文档是各类机构和个人普遍采用的一种信息存储格式其中包含了大量的结构化和半结构化数据如各类报告、调查问卷结果、项目计划等。这些文档中的表格往往承载了关键的数据信息如统计数据、项目进度、研究成果等。然而手动从大量的Word文档中逐一摘取并整理这些表格不仅耗时费力且易出错无法满足高效、准确的数据利用需求。因此利用编程实现批量提取Word文档中的表格成为了一种必要且高效的解决方案。Python作为一种功能强大、易学易用的编程语言可以有效地实现这一目标极大地提升数据采集和预处理的工作效率同时也为后续的数据分析和应用提供强有力的支持。本文将介绍如何使用Python实现对Word文档中表格的提取。 文章目录 提取Word文档表格并保存为Excel工作表提取Word文档表格并保存为CSV文件 本文所使用的方法需要用到Spire.Doc for Python可从官网获取。如果是将表格保存到Excel工作表则还需要用到Spire.XLS for Python。
提取Word文档表格并保存为Excel工作表
读取Word文档中的表格并写入Excel工作簿需要同时用到这两个库。以下是操作步骤
创建 Document 和 Workbook 对象。使用 Document 类的 LoadFromFile() 方法载入指定路径下的 Word 文档。清除 Workbook 中的所有工作表。遍历加载的 Word 文档中的所有节Sections。在每个节中遍历其包含的所有表格Tables。对于每一个表格创建一个新的 Excel 工作表并根据表格索引为其命名。遍历表格中的每一行Rows并获取当前行对象。再次遍历该行中的所有单元格Cells获取单元格对象。对于每个单元格将其包含的段落内容合并为一个字符串cellText。使用 Workbook 的工作表对象的 SetCellValue() 方法将合并后的单元格文本内容写入到对应的工作表中。完成所有表格数据的写入后使用 Workbook 的 SaveToFile() 方法将 Excel 数据保存到指定路径。
代码示例
from spire.doc import *
from spire.doc.common import *
from spire.xls import *
from spire.xls.common import *# 创建Document对象
doc Document()# 载入Word文档
doc.LoadFromFile(示例.docx)# 创建Workbook对象
wb Workbook()
wb.Worksheets.Clear()# 遍历文档中的节
for i in range(doc.Sections.Count):# 获取一个节section doc.Sections.get_Item(i)# 遍历节中的表格for j in range(section.Tables.Count):# 获取一个表格table section.Tables.get_Item(j)# 创建一个工作表ws wb.Worksheets.Add(f表 {(j 1)})# 将表格数据写入工作表for row in range(table.Rows.Count):# 获取一行tableRow table.Rows.get_Item(row)# 遍历一行中的单元格for cell in range(tableRow.Cells.Count):# 获取一个单元格tableCell tableRow.Cells.get_Item(cell)# 获取单元格的内容cellText for paragraph in range(tableCell.Paragraphs.Count):paragraph tableCell.Paragraphs.get_Item(paragraph)cellText cellText paragraph.Text# 将单元格的内容写入工作表ws.SetCellValue(row 1, cell 1, cellText)wb.SaveToFile(output/Word表格写入Excel.xlsx, FileFormat.Version2016)
doc.Close()
wb.Dispose()提取结果 提取Word文档表格并保存为CSV文件
CSV文件以文本的文件的形式储存表格数据因此我们可以直接使用Spire.Doc for Python提取Word文档中的表格数据并写入到CSV文件。以下是操作步骤
创建 Document 对象。使用 Document 类的 LoadFromFile() 方法载入指定路径下的 Word 文档。遍历载入的 Word 文档中的所有节Sections。在每个节内进一步遍历其包含的所有表格Tables。对于每个表格生成对应的 CSV 文件名并以写模式打开这个文件设置编码为 UTF-8 并开启新行模式。创建 csv.writer 对象用于写入 CSV 文件内容。根据表格的列数动态生成 CSV 文件的标题行列名并用 writerow() 方法写入到CSV文件中。遍历当前表格的每一行Rows获取当前行对象。对于每一行中的每个单元格只提取第一个段落的文本内容形成一行的数据列表。使用 csv.writer 对象的 writerow() 方法将这一行的数据列表写入到对应的 CSV 文件中。在完成一个表格的所有数据写入后关闭已打开的 CSV 文件。继续处理下一个表格直至遍历完所有表格。
import csv
from spire.doc import *# 创建Document对象
doc Document()# 载入Word文档
doc.LoadFromFile(示例.docx)# 遍历文档中的节
for i in range(doc.Sections.Count):# 获取一个节section doc.Sections.get_Item(i)# 遍历节中的表格for j in range(section.Tables.Count):# 获取一个表格table section.Tables.get_Item(j)# 创建CSV文件名并打开文件csv_file_name foutput/CSV/表_{(j 1)}.csvwith open(csv_file_name, w, newline, encodingutf-8) as csvfile:writer csv.writer(csvfile)# 遍历表格中的每一行for row in range(table.Rows.Count):# 获取一行tableRow table.Rows.get_Item(row)# 读取一行中的单元格内容只取每个单元格的第一个段落row_data [tableRow.Cells.get_Item(cell).Paragraphs[0].Text for cell in range(tableRow.Cells.Count)]# 将单元格内容写入CSV文件writer.writerow(row_data)doc.Close()提取结果 以上内容讲述了如何通过Python提取Word文档中的表格并转换为Excel工作表或CSV文件。 Spire.Doc for Python还支持许多其他功能请前往Spire.Doc for Python教程查看。
申请免费许可