1 (изменено: Alectric, 2015-01-11 20:48:21)

Тема: AHK: Читать DOCX в переменную [решено ComObject]

Возможно ли прочитать текст из документа ворда в переменную не открывая его через ворд?
Нужно для дальнейшей работы с текстом.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

2

Re: AHK: Читать DOCX в переменную [решено ComObject]

Попробуйте открыть файл .docx архиватором и найти там документ document.xml.

3 (изменено: Alectric, 2015-01-11 20:52:14)

Re: AHK: Читать DOCX в переменную [решено ComObject]

Не выходит, пробовал 7z и winrar.
Решил сделать через ком, но застрял на открытии документа.

oWord := ComObjCreate("Word.Application") ; create MS Word object
oWord.Visible := 1, oWord.Activate ; make it visible and activate it.
oWord.Documents.Open("D:\Desktop\Downloads\blank.docx") ; create new document
;oWord.Range.Copy()
;oWord.Close()
;oWord.Quit()
f:=clipbord

msgbox,% p "`n-" f
ExitApp

При открытии выдает окно, что запись в документ запрещена и на выбор 3 пункта.
Сейчас ищю как миновать это и просто скопировать текст, не отображая сам документ (oWord.Visible := 0, сейчас 1 для отладки).

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

4

Re: AHK: Читать DOCX в переменную [решено ComObject]

У меня winrar'ом получалось открыть. Скиньте файл, я попробую извлечь.

5 (изменено: Alectric, 2015-01-11 20:08:30)

Re: AHK: Читать DOCX в переменную [решено ComObject]

С открытием разобрался.

Word:=oWord.Documents.Open("D:\Desktop\Downloads\blank.docx")

Теперь как копировать... не найду где описаны все функции для ворда.

Вот файл.

Post's attachments

blank.zip 3.37 kb, 5 downloads since 2015-01-11 

You don't have the permssions to download the attachments of this post.
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

6 (изменено: Alectric, 2015-01-11 20:18:48)

Re: AHK: Читать DOCX в переменную [решено ComObject]

Методом "тыка в гугл" нашел.

Код чтобы взять текст из документа "*.docx".

oWord := ComObjCreate("Word.Application")
Word:=oWord.Documents.Open("D:\Desktop\Downloads\blank.docx")
text:=word.ActiveWindow.Document.Range().Text
Word.Close()
oWord.Quit()
msgbox,% text

ps:
Проблемой с открытием оказались незакрытые копии ворда с открытым документом.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

7

Re: AHK: Читать DOCX в переменную [решено ComObject]

Вот, упаковал содержимое из docx в zip.

Post's attachments

blank.zip 3.62 kb, 21 downloads since 2015-01-11 

You don't have the permssions to download the attachments of this post.

8

Re: AHK: Читать DOCX в переменную [решено ComObject]

Наверное у меня старые версии архиваторов...

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

9

Re: AHK: Читать DOCX в переменную [решено ComObject]

Всем привет.

Имеется аналогичная задача, только после извлечения текста (несколько слов/фраз/строк, расположенных в разных местах документа) необходимо эти фразы/строки вставить в другой документ-word (также не открывая его). Все усложняется тем, что во втором документе уже есть некий текст и вставлять фразы/строки нужно в определенные места (т.е. перед вставкой использовать поиск конкретных слов и вставлять текст после них).

10

Re: AHK: Читать DOCX в переменную [решено ComObject]

Можно заменять через Find.Execute.
https://msdn.microsoft.com/VBA/Word-VBA … ethod-word