将 Word 表格中数据写入 Excel

这篇博客分享了如何处理不规则Word表格,当表格数量和数据位置不一致时,通过查找唯一字段将Word表格数据写入Excel的解决方案。作者提供了一种设计思路和实现结果,有助于从Word合同中抽取特定数据(面积,单价,付款阶段)并存储到Excel不同sheet中。

如题,代码其实在之前的线上培训已经讲过。现分享该代码,并在基础上再次处理
具体代码如下:

from docx import Document                      # 读Word的库
from openpyxl import Workbook                # 写Excel的库

“““file_path : Word文本的路径
    save_path : 保存Excel的路径
”””
def word_table_excel(file_path,save_path):    
    document = Document(file_path)
    count = 0
    tables = []
    wb = Workbook()
    ws = wb.active
    total = len(document.tables)                     # total 得到Word找那个有几个表格
    print("总共", total, "个表格等待处理...")
    for index in range(0, total):
        table = []
	for row in document.tables[index].rows:
            line = []
	    for grid in row.cells:
		line.append(grid.text)
            table.append(line)
	    ws.append(line)
         count = count + 1
	 print("第", count, "个表格正在处理...剩余", total - count + 1, "个表格", "\n")
	 tables.append(table)
  wb.save(save_path)
  print(tables)
  print("表格处理完成...")

!!!然而我们如果遇到的Word是不规则的,Word中的表格个数不一样,且表格数据属性的位置不一样的时候,我们就算将Word中的表格写入Excel,对后面的数据获取也

<think>好的,我现在需要帮助用户解决如何用Python循环读取Word表格内容写入Excel的问题。首先,我要回顾用户提供的引用信息,看看有哪些已有的代码和解决方案可以参考。用户提到的引用[3]中有读取Word表格并修改单元格的示例代码,使用python-docx库来处理Word文档。这里的关键点是遍历doc.tables和table.rows,然后提取cell.text。这部分代码可以作为读取Word表格的基础。接下来是写入Excel的部分,引用[4]提到使用xlrd模块,但更推荐使用openpyxl或者xlwt/xlutils,因为xlrd对新版Excel支持有限。用户的需求是写入Excel,所以应该选择支持写入的库,比如openpyxl或者xlsxwriter。考虑到兼容性,可能用openpyxl更合适,因为它支持.xlsx格式。用户需要的是循环读取Word中的多个表格,并将指定内容写入Excel。可能需要确定如何定位特定的表格或单元格,比如根据表格的索引、标题行或其他标识。假设用户需要提取每个表格的特定列或行,比如跳过表头,从第二行开始读取。然后需要将读取的数据按行或列写入Excel的工作表中。这里要注意Excel的行列索引是从1开始还是从0开始,根据库的不同可能会有差异。例如,openpyxl的单元格索引是从1开始的。 还需要处理多个Word文档的情况,用户是否要批量处理?问题描述中提到“循环读取”,可能是指单个文档中的多个表格,但也要确认是否需要处理多个文件。根据用户的问题,目前可能先处理单个文件内的多个表格。综合这些信息,步骤应该是: 1.使用python-docx读取Word文档中的所有表格。2.遍历每个表格,提取所需的数据(例如从第二行开始,某些列的内容)。 3.使用openpyxl创建一个Excel工作簿,并将数据写入其中。 可能出现的问题包括:Word表格结构不一致,如何处理不同的列数;数据类型转换(比如文本转数字);Excel文件的保存路径和格式。需要确保代码中有适当的异常处理,比如跳过空单元格或格式错误。然后,编写示例代码,演示如何循环读取每个表格的行,提取单元格内容,并写入Excel的对应位置。可能需要添加注释说明每个步骤,方便用户理解。最后,生成相关问题,帮助用户深入理解可能遇到的扩展问题,比如处理多个文档、处理复杂表格结构或性能优化等。</think>以下是使用Python循环读取Word表格内容写入Excel的示例代码: ```python from docx import Document from openpyxl import Workbook # 读取Word文档 doc = Document('输入文件.docx') # 创建Excel工作簿 wb = Workbook() ws = wb.active ws.title = "提取数据" # 设置Excel表头 header = ["名称", "数值", "备注"] ws.append(header) # 循环处理每个表格 for table_index, table in enumerate(doc.tables, 1): # 从表格第二行开始读取(假设第一行是表头) for row in table.rows[1:]: row_data = [] # 遍历前3列(根据实际需求调整) for cell in row.cells[:3]: row_data.append(cell.text.strip()) # 写入Excel(追加行数据) ws.append(row_data) # 保存Excel文件 wb.save('输出结果.xlsx') ``` **代码说明:** 1. 使用`python-docx`库的`Document`对象读取Word文档 2. 通过`openpyxl`创建新的Excel工作簿 3. 设置表头后,通过双重循环: - 外层循环遍历文档中的所有表格(`doc.tables`) - 内层循环遍历每个表格的行(从第二行开始) 4. 提取每个单元格的文本内容写入Excel 5. 最终保存为`输出结果.xlsx` **注意事项:** 1. 需要安装依赖库: ```bash pip install python-docx openpyxl ``` 2. 调整读取范围: - 修改`table.rows[1:]`中的切片索引调整起始行 - 调整`row.cells[:3]`中的切片索引选择需要提取的列 3. 支持批量处理多个Word文件时可添加外层文件循环 [^1]: 引用[3]提供了Word表格读取的基础方法 [^2]: 引用[4]说明了Excel写入的版本兼容问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值