MS Word Document Document Stucturre и COM-вызовов и Python - PullRequest
0 голосов
/ 13 декабря 2018

Я использую comptypes для вызова функции и создания документа ms-word.Когда я впервые пишу такую ​​программу, я не совсем правильно понимаю, что хочу сделать:

  • Создать раздел в документе и назвать его A, B, ...
  • В каждом разделе создайте абзацы, содержащие текст.Для раздела A вызывайте абзацы a1, a2, a3, ...
  • Добавьте форматирование к каждому абзацу в каждом разделе, форматирование может быть различным для каждого абзаца

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

Set myRange = ActiveDocument.Range(Start:= ...., End:= ...) //start and end can be any thing 
ActiveDocument.Sections.Add Range:=myRange  //Section A
Set newRange = ActiveDocument.Range(Start:= ...., End:= ...) //start and end can be any thing 
newRange.Paragraphs.Add

Я застрял, чтобы выбрать абзацы a1и установите его текст.Чего мне не хватает, так это функции, которая say get collection of paragraphs in section A.

1 Ответ

0 голосов
/ 14 декабря 2018

Следующий VBA, основанный на коде в вопросе, иллюстрирует получение объекта Document, добавление Section, получение Paragraphs этого Section, получение Paragraphs любого данного Section в документе, получая первый или любой Paragraph из Paragraphs коллекции.

Set doc = ActiveDocument   //More efficient if the Document object will be used more than once
Set section1 = doc.Sections.Add(Range:=myRange)  //Section A | Type Word.Section
Set section1Paras = section1.Paragraphs  //Type Word.Paragraphs
//OR
Set sectionParas = doc.Sections(n).Paragraphs //where n = section index number
Set para = sectionParas.First //OR =sectionParas(n) where n= paragraph index number
...