Копирование определенного контента из одного слова в другое - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь автоматизировать копирование определенного содержимого из одного документа (таблицы) в другой документ (таблицы). Пожалуйста, смотрите изображение ниже, чтобы понять, что я пытаюсь сделать.Пожалуйста, предложите, как заставить это работать.Мне вполне удобно использовать Python, если это возможно, или любой другой инструмент.Заранее спасибо.

image

1 Ответ

0 голосов
/ 21 сентября 2018

Если вы хотите использовать python, вы можете использовать библиотеку win32com (см. Chun, Wesley J. Core Python Applications Programming (Core Series) Глава 7).

import win32com.client as win32

, а затем

word = win32.gencache.EnsureDispatch('Word.Application')
my_doc=word.Documents.Open(<path and document name>)
my_doc.Visible=True ' leave out if you don't need to see the documents.

если вы используете подходящую IDE, у вас будет intellisense для библиотеки объектов Word

Для объектов таблицы Word вы можете получить доступ к тексту в ячейках с помощью следующих

my_doc.Tables(n).Range.Cell(x,y).range.text

Где

n - это целое число, представляющее порядковый номер таблицы в диапазоне от 1 до my_doc.Tables.Count

x, y - строка, координаты столбца ячейки в таблице.

Если таблицы неоднородны, вам придется использовать синтаксис ячеек (m), где m находится в диапазоне от 1 до my_doc.Tables.Range.Cells.Count.

Для копирования изодну таблицу в другую используйте

my_doc2.Tables(n2).range.cell(x2,y2).range.text=my_doc1.Tables(n1).range.cell(x1,y1).range.text

или

my_doc2.Tables(n2).range.cells(m2).range.text=my_doc1.Tables(n1).range.cells(m1).range.text

(конечно, для вышеуказанных m1 и m2 будут разные смещения)

Кроме того, как вы показываете, чтоесть три пункта назначения, которые вам понадобятсяn2_1, n2_2, n2_3 в зависимости от ситуации.

...