遍历单元格 sentences/paragraphs - docx 表格
Iterating through cell sentences/paragraphs - docx tables
我希望在 docx table 的单元格内遍历 sentences/paragraphs,使用 pywin32 模块根据样式标签执行功能。
我可以手动 select 单元格使用
cell = table.Cell(Row = 1, Column =2)
我尝试使用类似
for x in cell:
#do something
但是
<class 'win32com.client.CDispatch'>
个对象 'do not support enumeration'
我尝试浏览:Word OM 以找到解决方案但无济于事(我知道这是针对 VBA,但仍然非常有用)
这是一个简单的例子,它从文档中第一个 table 的第一行/第一列读取内容并逐字打印:
import win32com.client as win32
import os
wordApp = win32.gencache.EnsureDispatch("Word.Application")
wordApp.Visible = False
doc = wordApp.Documents.Open(os.getcwd() + "\Test.docx")
table = doc.Tables(1)
for word in table.Cell(Row = 1, Column = 1).Range.Text.split():
print(word)
wordApp.Application.Quit(-1)
单元格的内容只是一个字符串,您也可以使用 split('\r')
轻松地将其拆分为段落或使用 split('.')
拆分为句子。
我希望在 docx table 的单元格内遍历 sentences/paragraphs,使用 pywin32 模块根据样式标签执行功能。
我可以手动 select 单元格使用
cell = table.Cell(Row = 1, Column =2)
我尝试使用类似 for x in cell:
#do something
但是
<class 'win32com.client.CDispatch'>
个对象 'do not support enumeration'
我尝试浏览:Word OM 以找到解决方案但无济于事(我知道这是针对 VBA,但仍然非常有用)
这是一个简单的例子,它从文档中第一个 table 的第一行/第一列读取内容并逐字打印:
import win32com.client as win32
import os
wordApp = win32.gencache.EnsureDispatch("Word.Application")
wordApp.Visible = False
doc = wordApp.Documents.Open(os.getcwd() + "\Test.docx")
table = doc.Tables(1)
for word in table.Cell(Row = 1, Column = 1).Range.Text.split():
print(word)
wordApp.Application.Quit(-1)
单元格的内容只是一个字符串,您也可以使用 split('\r')
轻松地将其拆分为段落或使用 split('.')
拆分为句子。