python docx获取文档中的表格后,只获取名称这列,将这列,通过openpyxl写入,每行的名称都有序号,从1开始,如何操作
时间: 2024-10-22 15:13:42 浏览: 17
在Python中,你可以使用`python-docx`库读取`.docx`文件中的Excel表格,并使用`openpyxl`库将数据处理成你需要的形式。以下是一个步骤说明:
1. 首先,安装所需的库(如果尚未安装):
```
pip install python-docx openpyxl
```
2. 使用`python-docx`读取.docx文件并提取表格内容:
```python
from docx import Document
from docx.table import Table
# 打开Word文档
doc = Document('your_file.docx')
# 获取所有的表格
tables = doc.tables
# 存储表名数据的列表
table_names = []
for table in tables:
# 只提取包含"名称"列的表格,假设第0列是名称列
if len(table.columns) > 0 and "名称" in table.cell(0, 0).text:
for row in table.rows:
# 提取名称并添加到列表
name_cell = row.cells[0]
table_names.append(name_cell.text)
```
3. 使用`openpyxl`创建一个新的Excel工作簿,并写入有序号的名称:
```python
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
# 创建新的Excel工作簿
wb = Workbook()
ws = wb.active # 选择第一个工作表
# 添加序号列
ws['A1'] = '序号'
ws['B1'] = '名称'
# 将表名数据写入Excel
row_num = 2
for name in table_names:
ws.cell(row=row_num, column=1).value = row_num
ws.cell(row=row_num, column=2).value = name
row_num += 1
# 保存Excel文件
wb.save('output.xlsx')
```
阅读全文