сохранить значения столбцов из таблицы Word с Python с библиотекой docx - PullRequest
0 голосов
/ 04 марта 2019

Как можно распечатать только значения во втором столбце таблицы MS word.Мой код ниже печатает значение первого столбца, значения второго столбца одно под другим.Пример: формат Word Table:

colm 1       column2
SR#          32213
Part#        K9843
PartDesc     SteamBolt

--- мой код ---

import docx
from docx import Document
wordDoc = Document('c:\python-programs\ssis-test.docx')
for table in wordDoc.tables:
    for row in table.rows:
        for cell in row.cells:
            print (cell.text)

--- конец моего кода --- Приведенный выше код печатается, как показано ниже.

SR#
32213
Part# 
K9843
PartDesc
SteamBolt

Я хочу только напечатать значения 32213, K9843 и SteamBolt (только во втором столбце.)

Версия Python: 3.5.2 с библиотекой docx.

Ценю вашу помощь.

1 Ответ

0 голосов
/ 04 марта 2019

Docx, вероятно, не самый лучший подход, поскольку он предлагает лишь небольшое подмножество API-интерфейса Word и, несмотря на появление на GitHub, не разрабатывался в течение ряда лет.

Лучшим подходом было быиспользовать Win32Com, который дает полный доступ к объектным моделям Com (таким как офисные приложения).С Win32com вы также хотели бы использовать makepy для генерации intellisense для объектной модели, которую вы хотите использовать.

Быстрый просмотр здесь поможет

http://timgolden.me.uk/pywin32-docs/html/com/win32com/HTML/QuickStartClientCom.html

Подход VBA к вашему вопросу будет выглядеть следующим образом:

Option Explicit

Sub test()

    Dim my_table                    As Word.Table
    Dim my_row                      As Word.Row
    Dim my_text                     As String

    For Each my_table In ActiveDocument.Tables

        For Each my_row In my_table.Range.Rows

            my_text = my_row.Range.Cells(2)

        Next

    Next

End Sub

Но это не гарантируется, так как Word имеет проблематичную обработку таблиц, если ваша таблица содержит ячейки, которые были объединены.Вы можете проверить таблицы, которые будут вызывать проблемы, используя свойство .Uniform.То, как вы справляетесь с неоднородным столом, я оставлю вам для изучения, если вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...