File: table.py

package info (click to toggle)
python-docx 0.8.11%2Bdfsg1-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 6,640 kB
  • sloc: xml: 25,311; python: 21,911; makefile: 168
file content (146 lines) | stat: -rw-r--r-- 3,929 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# encoding: utf-8

"""
Enumerations related to tables in WordprocessingML files
"""

from __future__ import (
    absolute_import, division, print_function, unicode_literals
)

from .base import (
    alias, Enumeration, EnumMember, XmlEnumeration, XmlMappedEnumMember
)


@alias('WD_ALIGN_VERTICAL')
class WD_CELL_VERTICAL_ALIGNMENT(XmlEnumeration):
    """
    alias: **WD_ALIGN_VERTICAL**

    Specifies the vertical alignment of text in one or more cells of a table.

    Example::

        from docx.enum.table import WD_ALIGN_VERTICAL

        table = document.add_table(3, 3)
        table.cell(0, 0).vertical_alignment = WD_ALIGN_VERTICAL.BOTTOM
    """

    __ms_name__ = 'WdCellVerticalAlignment'

    __url__ = 'https://msdn.microsoft.com/en-us/library/office/ff193345.aspx'

    __members__ = (
        XmlMappedEnumMember(
            'TOP', 0, 'top', 'Text is aligned to the top border of the cell.'
        ),
        XmlMappedEnumMember(
            'CENTER', 1, 'center', 'Text is aligned to the center of the cel'
            'l.'
        ),
        XmlMappedEnumMember(
            'BOTTOM', 3, 'bottom', 'Text is aligned to the bottom border of '
            'the cell.'
        ),
        XmlMappedEnumMember(
            'BOTH', 101, 'both', 'This is an option in the OpenXml spec, but'
            ' not in Word itself. It\'s not clear what Word behavior this se'
            'tting produces. If you find out please let us know and we\'ll u'
            'pdate this documentation. Otherwise, probably best to avoid thi'
            's option.'
        ),
    )


@alias('WD_ROW_HEIGHT')
class WD_ROW_HEIGHT_RULE(XmlEnumeration):
    """
    alias: **WD_ROW_HEIGHT**

    Specifies the rule for determining the height of a table row

    Example::

        from docx.enum.table import WD_ROW_HEIGHT_RULE

        table = document.add_table(3, 3)
        table.rows[0].height_rule = WD_ROW_HEIGHT_RULE.EXACTLY
    """

    __ms_name__ = "WdRowHeightRule"

    __url__ = 'https://msdn.microsoft.com/en-us/library/office/ff193620.aspx'

    __members__ = (
        XmlMappedEnumMember(
            'AUTO', 0, 'auto', 'The row height is adjusted to accommodate th'
            'e tallest value in the row.'
        ),
        XmlMappedEnumMember(
            'AT_LEAST', 1, 'atLeast', 'The row height is at least a minimum '
            'specified value.'
        ),
        XmlMappedEnumMember(
            'EXACTLY', 2, 'exact', 'The row height is an exact value.'
        ),
    )


class WD_TABLE_ALIGNMENT(XmlEnumeration):
    """
    Specifies table justification type.

    Example::

        from docx.enum.table import WD_TABLE_ALIGNMENT

        table = document.add_table(3, 3)
        table.alignment = WD_TABLE_ALIGNMENT.CENTER
    """

    __ms_name__ = 'WdRowAlignment'

    __url__ = ' http://office.microsoft.com/en-us/word-help/HV080607259.aspx'

    __members__ = (
        XmlMappedEnumMember(
            'LEFT', 0, 'left', 'Left-aligned'
        ),
        XmlMappedEnumMember(
            'CENTER', 1, 'center', 'Center-aligned.'
        ),
        XmlMappedEnumMember(
            'RIGHT', 2, 'right', 'Right-aligned.'
        ),
    )


class WD_TABLE_DIRECTION(Enumeration):
    """
    Specifies the direction in which an application orders cells in the
    specified table or row.

    Example::

        from docx.enum.table import WD_TABLE_DIRECTION

        table = document.add_table(3, 3)
        table.direction = WD_TABLE_DIRECTION.RTL
    """

    __ms_name__ = 'WdTableDirection'

    __url__ = ' http://msdn.microsoft.com/en-us/library/ff835141.aspx'

    __members__ = (
        EnumMember(
            'LTR', 0, 'The table or row is arranged with the first column '
            'in the leftmost position.'
        ),
        EnumMember(
            'RTL', 1, 'The table or row is arranged with the first column '
            'in the rightmost position.'
        ),
    )