求教无所不能的 Python 大神,如何读取指定区域的 MS WORD 的内容?

2013-03-01 22:46:06 +08:00
 tedd


目标框是需要读取的内容,能将其读取出来就算任务完成了!搜了半天都没有找到合适的方案
7546 次点击
所在节点    Python
9 条回复
min
2013-03-01 22:48:17 +08:00
这个问题用ironpythn会不会简单点。。。
phuslu
2013-03-01 22:59:46 +08:00
之前搞过, 用 win32com.client 搞.
参考这个 c# 例程, 翻译一下.
phuslu
2013-03-01 23:01:18 +08:00
dreampuf
2013-03-02 02:14:33 +08:00
最近在弄和office相关的,我最后选的方案是JPype call Apache POI
gamexg
2013-03-04 20:13:59 +08:00
以前转换报表格式弄过word文档。


import win32com
from datetime import datetime
from win32com.client import Dispatch, constants

w = win32com.client.Dispatch('Word.Application')
ts = w.Documents.Open(r'E:\n.doc').Tables


print ts[0].Cell(4,4).Range.Text

网上有vb的word参考文档,可以参考一下。
hewigovens
2013-03-04 20:33:48 +08:00
@phuslu 哈, 老本行啊, 我以前也用C++这么搞过
tedd
2013-03-04 21:03:36 +08:00
@gamexg

太感谢了,我照着敲下来出现了这个报错:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<COMObject <unknown>>", line 3, in Cell
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Word'
, u'The requested member of the collection does not exist.', u'C:\\Program Files
(x86)\\Microsoft Office\\Office12\\1033\\WDMAIN11.CHM', 25421, -2146822347), None)
>>>
gamexg
2013-03-05 19:20:45 +08:00
@tedd

我这里没环境,看错误像是没有指定的单元格,Cell(4,4)指的是第四行第四列的单元格。

详细信息可以从网上找一下 Microsoft+Word+Visual+Basic+参考.chm
wzzyj8
2013-03-05 20:51:05 +08:00
VBA导出CSV,Python处理CSV。会不会快一点?毕竟对于Office来说自带的VBA读取起来会好一点

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/61713

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX