hyb
2025-12-30 399ffc4d9829f70529d3b096fe4228f7496cc566
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
Ë
dñúhãóŽ—ddlZddlmZddlmZmZddlmZddlm    Z    ddl
m Z Gd„d    e «Z Gd
„d e«Z Gd „d e «Zy)éN)Ú Serialisable)ÚIntegerÚSequence)Ú
MergedCell)ÚBorderé)Ú    CellRangecóH‡—eZdZdZej
ZdZ    dˆfd„    Zd„Z    ˆxZ
S)Ú    MergeCellÚ    mergeCell)Úrefcó$•—t‰||«y©N)ÚsuperÚ__init__)Úselfr Ú    __class__s  €úKH:\Change_password\venv_build\Lib\site-packages\openpyxl/worksheet/merge.pyrzMergeCell.__init__sø€ô    ‰Ñ˜Õócó8—|j|j«Sr)rr ©rs rÚ__copy__zMergeCell.__copy__s€Ø~‰~˜dŸh™hÓ'Ð'rr) Ú__name__Ú
__module__Ú __qualname__Útagnamer    Úcoordr Ú    __attrs__rrÚ __classcell__©rs@rr r s%ø„à€GØ
/‰/€Cà€Iðõö (rr cóX—eZdZdZed¬«Zee¬«ZdZ    dZ
        d
d„Z e d    „«Zy) Ú
MergeCellsÚ
mergeCellsT)Ú
allow_none)Ú expected_type©r )ÚcountNcó—||_yrr&)rr'r s   rrzMergeCells.__init__-s €ð#ˆrcó,—t|j«Sr)Úlenr rs rr'zMergeCells.count4s€ä4—>‘>Ó"Ð"r)N©) rrrrrr'rr r Ú __elements__rrÚpropertyr+rrr"r"#sF„à€Gá ˜tÔ $€EÙ yÔ3€Ià!€LØ€IðØó#ðñ#óñ#rr"có:‡—eZdZdZˆfd„Zd„Zd„Zd„Zd„ZˆxZ    S)ÚMergedCellRangea
    MergedCellRange stores the border information of a merged cell in the top
    left cell of the merged cell.
    The remaining cells in the merged cell are stored as MergedCell objects and
    get their border information from the upper left cell.
    cób•—||_t‰|    |¬«d|_|j    «y)N)Ú range_string)ÚwsrrÚ
start_cellÚ _get_borders)rÚ    worksheetrrs   €rrzMergedCellRange.__init__Bs-ø€ØˆŒÜ ‰Ñ eÐÔ,؈ŒØ ×ÑÕrcó(—|jjj|j|jf«|_|j
€6|jj |j|j¬«|_|jjj|j|jf«}|S|j
xjt|jj|jj¬«z c_    yy)a
        If the upper left cell of the merged cell does not yet exist, it is
        created.
        The upper left cell gets the border information of the bottom and right
        border from the bottom right cell of the merged cell, if available.
        N©ÚrowÚcolumn)ÚrightÚbottom) r2Ú_cellsÚgetÚmin_rowÚmin_colr3ÚcellÚmax_rowÚmax_colÚborderrr:r;)rÚend_cells  rr4zMergedCellRange._get_bordersIs¾€ðŸ'™'Ÿ.™.×,Ñ,¨d¯l©l¸D¿L¹LÐ-IÓJˆŒØ ?‰?Ð "Ø"Ÿg™gŸl™l¨t¯|©|ÀDÇLÁL˜lÓQˆDŒOð—7‘7—>‘>×%Ñ% t§|¡|°T·\±\Ð&BÓCˆØ Ð Ø O‰O× "Ò "¤f°8·?±?×3HÑ3HØ4<·O±O×4JÑ4Jô'Lñ LÖ "ð  rcóf—gd¢}|D]×}t|jj|«}|r |j€Œ2t    di||i¤Ž}t||«D]Š}|j
j j|«}|€L|\}}t|j
||¬«}||j
j |j|jf<|xj|z c_ŒŒŒÙ|jjdu}    |    r)tj|jj«}
|jD]}|j
j j|«}|€L|\}}t|j
||¬«}||j
j |j|jf<|    sŒy
|_ Œy)a 
        Each cell of the merged cell is created as MergedCell if it does not
        already exist.
 
        The MergedCells at the edge of the merged cell gets its borders from
        the upper left cell.
 
         - The top MergedCells get the top border from the top left cell.
         - The bottom MergedCells get the bottom border from the top left cell.
         - The left MergedCells get the left border from the top left cell.
         - The right MergedCells get the right border from the top left cell.
        )ÚtopÚleftr:r;Nr7r+)Úgetattrr3rCÚstylerr2r<r=rr8r9Ú
protectionÚcopyÚcells) rÚnamesÚnameÚsiderCrr@r8ÚcolÚ    protectedrJs            rÚformatzMergedCellRange.format]sn€ò3ˆàò     &ˆDܘ4Ÿ?™?×1Ñ1°4Ó8ˆDÙ˜Ÿ
™
Ð*ØÜÑ*˜t D˜kÑ*ˆFÜ   tÓ,ò &Ø—w‘w—~‘~×)Ñ)¨%Ó0Ø<Ø$‘HC˜Ü% d§g¡g°3¸sÔCDØ>BD—G‘G—N‘N D§H¡H¨d¯k©kÐ#:Ñ;Ø— ’ ˜vÑ%– ñ  &ð     &ð—O‘O×.Ñ.°dÐ:ˆ    Ù ÜŸ™ 4§?¡?×#=Ñ#=Ó>ˆJØ—Z‘Zò    -ˆEØ—7‘7—>‘>×%Ñ% eÓ,ˆD؈|Ø ‘SÜ! $§'¡'¨s¸3Ô?Ø:>—‘—‘ §¡¨$¯+©+Ð6Ñ7âØ",•ñ    -rcó0—|t|j«vSr)r    r)rrs  rÚ __contains__zMergedCellRange.__contains__ˆs€Øœ     $§*¡*Ó-Ð-Ð-rcóN—|j|j|j«Sr)rr2rrs rrzMergedCellRange.__copy__Œs€Ø~‰~˜dŸg™g t§z¡zÓ2Ð2r)
rrrÚ__doc__rr4rRrTrrr s@rr/r/9s#ø„ñôòLò((-òV.ö3rr/)rKÚ!openpyxl.descriptors.serialisablerÚopenpyxl.descriptorsrrÚopenpyxl.cell.cellrÚopenpyxl.styles.bordersrÚ
cell_ranger    r r"r/r+rrú<module>r\sCðó å:÷õ
*Ý*å!ô(    ô(ô$#ô#ô,T3iõT3r