2013-04-28 74 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