2013-04-28 72 views
0

我正在尝试编写一个VBA宏,将给定的MS Word文档转换为该文档中包含的文档对象(例如段落,表格等)的顺序列表。对于这些对象中的每一个,我想提取包含的文本及其明确的格式信息以将其保存在数据库中。VBA Word:如何从格式信息中分离内容?

对我来说,如何开始有什么指针?这个文档解析任务有没有优雅的解决方案?

+0

您好,请尝试使用此功能来实现,有一些解决方案可用于此已可以帮助您。 – 2013-04-28 07:02:20

+0

嗨,托比 - 我正在尝试改进一个目前非常手动的文档本地化过程(语言之间的文档转换)。 – Pat 2013-04-28 07:30:12

+0

我的方法是遍历文档中对象的有序列表,检索对象类型,然后为每个对象类型(如表格和图像)的特定处理设置子例程。 – Pat 2013-04-28 07:33:06

回答

1

不知道您的全部要求,这只是一些建议。

你也许能够做你想做的事情,但是将单词文档拆开并将它们拼凑在一起将是一项艰巨的任务。如果你不想采用这种方法,最好的办法可能是拉出段落,图像等,并将这些部分保存为数据库中的单个文档。然后他们可以使用

For i = 1 To ActiveDocument.Paragraphs.Count 

MsgBox ActiveDocument.Paragraphs.Item(i) 


Next i 


ActiveDocument.Content.InsertAfter AnotherDocument 

这是令人难以置信的基本,将是很多工作,以正确工作。

我想知道将文档转换为html会更好(通过保存为HTML来完成),然后您可以使用开源库来允许用户编辑文档的某些部分。例如,为jquery添加jeditable插件,并且几乎HTML字文档中的任何段落都可以编辑。一个简单的后端php脚本来保存更改,你有一些工作。然后,您还可以记下为了翻译目的而发生的变化。

他们能文档发送到客户

只是一个想法之前保存回为Word文档或PDF文件。

+0

谢谢,Tobi。在尝试以特定格式提取可靠的令牌时,我已经将基于HTML的解决方案与Perl脚本结合使用(VBA脚本执行同样的操作)。我主要关注的问题有两方面:1)HTML仅接近可用格式的全部范围。 2)复杂的文档会有一个同样复杂的标记(我担心这可能比清晰的VBA脚本更难以访问)。 – Pat 2013-04-28 19:34:27

+0

非常感谢指向jeditable的指针。我会跟进。 – Pat 2013-04-28 19:41:46

+0

关于基于对象的VBA方法的评论听起来并不令人鼓舞。为什么这么难?是不是有一个枚举可供人们迭代以获取文档中的所有对象?我的观点是,段落对于手头的任务来说可能很大。我想要捕获文档中每个单词的每个格式信息! – Pat 2013-04-28 19:46:52