Тема: AHK: Читать DOCX в переменную [решено ComObject]
Возможно ли прочитать текст из документа ворда в переменную не открывая его через ворд?
Нужно для дальнейшей работы с текстом.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Возможно ли прочитать текст из документа ворда в переменную не открывая его через ворд?
Нужно для дальнейшей работы с текстом.
Попробуйте открыть файл .docx архиватором и найти там документ document.xml.
Не выходит, пробовал 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 для отладки).
У меня winrar'ом получалось открыть. Скиньте файл, я попробую извлечь.
С открытием разобрался.
Word:=oWord.Documents.Open("D:\Desktop\Downloads\blank.docx")
Теперь как копировать... не найду где описаны все функции для ворда.
Вот файл.
Методом "тыка в гугл" нашел.
Код чтобы взять текст из документа "*.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:
Проблемой с открытием оказались незакрытые копии ворда с открытым документом.
Вот, упаковал содержимое из docx в zip.
Наверное у меня старые версии архиваторов...
Всем привет.
Имеется аналогичная задача, только после извлечения текста (несколько слов/фраз/строк, расположенных в разных местах документа) необходимо эти фразы/строки вставить в другой документ-word (также не открывая его). Все усложняется тем, что во втором документе уже есть некий текст и вставлять фразы/строки нужно в определенные места (т.е. перед вставкой использовать поиск конкретных слов и вставлять текст после них).
Можно заменять через Find.Execute.
https://msdn.microsoft.com/VBA/Word-VBA … ethod-word
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться