ID:
PW:

     0 ºÐ
     14 ºÐ

¿£Áö´Ï¾î µ¹Á¾
  dolljong
ÇÁ·Î±×·¡¹Ö Tips
ÇÁ·Î±×·¡¹Ö¿¡ °üÇÑ TipÀ» °øÀ¯ÇÏ´Â °÷ÀÔ´Ï´Ù.


(¿£Áö´Ï¾î¸¦ À§ÇÑ) ÆÄÀ̽㠽ÃÀÛÇϱâ[17] xlwings Ãâ·Â ¾ç½Ä ¼³Á¤ ¸ðÀ½
À̼®Á¾  2023-02-13 08:36:27, Á¶È¸ : 382, Ãßõ : 42
- Download #1 : engpython17.png (62.3 KB), Download : 10


(¿£Áö´Ï¾î¸¦ À§ÇÑ) ÆÄÀ̽㠽ÃÀÛÇϱâ[17]

 

³»¿ë : xlwings Ãâ·Â ¾ç½Ä ±â´É ¸ðÀ½

ÂüÁ¶ :

xlwings °ø½Ä ȨÆäÀÌÁö : https://www.xlwings.org/

 

 

0.½ÃÀÛÇϸç

pythonÀ¸·Î ¿¢¼¿À» ÅëÁ¦ÇÒ ¼ö ÀÖ´Â ¸ðµâµéÀº ¸¹´Ù. ¸ðµâ¸¶´Ù Ư¼ºÀÌ Á» ´Ù¸£´Ù. openpyxlÀÇ °æ¿ì ÄÄÇ»ÅÍ¿¡ ¿¢¼¿ÀÌ ±ò·ÁÀÖÁö ¾Ê¾Æµµ µ¿ÀÛÇÑ´Ù. ¿¢¼¿ÆÄÀÏÀ» ÀÐ°í ¾µ ¼ö ÀÖ´Ù. ±×·¡¼­ À¥È¯°æ(À¥¼­¹ö)¿¡¼­µµ pythonÀ¸·Î ¿¢¼¿ ÆÄÀÏÀ» ¸¸µé ¼ö ÀÖ´Ù. xlwings´Â ¿¢¼¿ÀÌ ¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. xlwings´Â ¿¢¼¿ ÇÁ·Î±×·¥°ú ¿¬µ¿ÇÏ´Â ÇüÅ´Ù. ±×·¡¼­ ¿¢¼¿ÀÌ Áö¿øÇÏ´Â ´Ù¾çÇÑ ±â´ÉµéÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿À´Ã »ìÆìº¼ ±â´ÉµéÀº xlwings·Î ¼¿ º´ÇÕÇϱâ, ÆùÆ® ¹× ÆùƮũ±â ¼³Á¤Çϱâ, ¼±±×¸®±â, ¼¿ »ö»ó ä¿ì±â µîÀÌ´Ù.

 

1. ¼¿º´ÇÕ (merge)

±¹³» ¿£Áö´Ï¾î¸µ ¾÷°è¿¡¼­ ¿¢¼¿À» °è»ê¼­ ÀÛ¼º¿ëÀ¸·Î ¸¹ÀÌ ¾´´Ù. ¿¢¼¿Àº ¼¿´ÜÀ§·Î ¼ö½ÄÀ» ÀÔ·ÂÇÏ°Ô µÇ¾îÀ־ Ä÷³ÀÌ ¸ðµÎ ÀÏ·üÀûÀ̾î¾ß ÇÑ´Ù. ÇÏÁö¸¸ ¹®¼­¸¦ ÀÛ¼ºÇÏ´Ùº¸¸é Ä÷³À» ¸ðµÎ ÀÏ·üÀûÀ¸·Î ¸ÂÃâ ¼ö´Â ¾ø´Ù. ±×·¡¼­ Ä÷³ ÆøÀ» ÁÙÀÌ°í ¼¿À» mergeÇØ¼­ ¾²´Â ¹æ¹ýÀ» ã¾Æ³Â´Ù. ÇÊÀÚ´Â °³ÀÎÀûÀ¸·Î ÀÌ ¹æ¹ýÀ» ÁÁ¾ÆÇÏÁö´Â ¾Ê´Â´Ù. ¼¿µéÀ» º¹»ç³ª º¯°æÀ» ÇÏ·Á¸é º´ÇÕ µÇ¾îÀÖ´Â ¼¿µéÀÌ ¸»½éÀ» ºÎ¸®±â ¶§¹®ÀÌ´Ù. ¾Æ·¡ÀÇ ÄÚµå´Â C4:E4ÀÇ ¼¼°³ ¼¿À» º´ÇÕÇÏ´Â ÄÚµå´Ù.

import xlwings as xw
wsout = xw.sheets.active
wsout.range((
4,3), (4, 5)).merge()

 

range(¡°C4:E4¡±)¶ó°í ÇØµµ °á°ú´Â °°´Ù. ÇÏÁö¸¸ º´ÇÕÇÒ °÷µéÀÌ ¸¹´Ù¸é ¼¿ ÁÖ¼Ò¸¦ º¯¼ö·Î ó¸®Çؼ­ ¹Ýº¹¹®À» µ¹·Á¾ß ÇÒ ¶§µµ ÀÖÀ» °ÍÀÌ´Ù. Çà°ú ¿­À» ¼ýÀڷΠǥÇöÇÏ´Â °ÍÀÌ ÆíÇÒ °ÍÀÌ´Ù. ±×·± °æ¿ì¿¡´Â ÀÌ·± ½ÄÀ¸·Î range¸¦ Á¤ÇØÁÙ ¼ö ÀÖ´Ù. range((r,c),(r,c))¾ÕÀÇ (r,c)°¡ ½ÃÀÛ¼¿, µÚÀÇ (r,c)°¡ ³¡ ¼¿À» ¶æÇÑ´Ù.

 

2. ÅØ½ºÆ® ½ºÅ¸ÀÏ ¹× Å©±â ¼³Á¤

ÅØ½ºÆ® ÆùÆ®¸¦ ¼±ÅÃÇÒ ¶§´Â range¸¦ ¼±ÅÃÇϰí font.nameÀ» Á¤ÇØÁÖ¸é µÈ´Ù. Å©±â´Â font.size·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. A1:Z200 ¹üÀ§¸¦ ¸ðµÎ ±¼¸²Ã¼ÀÇ 9 point·Î ¼³Á¤Çϰí A2´Â º¼µå¿Í ºÓÀº »öÀ» Àû¿ëÇß´Ù.

    wsout.range("A1:Z200").font.name = "±¼¸²Ã¼"
    wsout.range(
"A1:Z200").font.size = 9
    wsout.range(
"A2").font.bold = True

    wsout.range("A2").font.color = (255,0,0)

 

ÅØ½ºÆ®ÀÇ ÀϺκп¡¸¸ bold, »ö»ó µîÀ» Àû¿ëÇÏ·Á¸é characters ¼Ó¼ºÀ» ÀÌ¿ëÇØ¼­ ¿øÇÏ´Â ±ÛÀÚµéÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ¾Æ·¡ ÄÚµå´Â ¡°´Ü¸éÁ¦¿ø¡±¸¸ ºÓÀº »öÀ¸·Î º¯°æÇÏ´Â ÄÚµå´Ù.

wsout.range("B2").characters[3:7].font.color = (255,0,0)

 

 

3. ÅØ½ºÆ® Á¤·Ä.

ÅØ½ºÆ® Á¤·Ä¹æ¹ýÀ» Á¤ÇØÁÙ ¶§´Â range¸¦ ¼±ÅÃÇϰí .api.HorizontalAlignment = -4131°ú °°ÀÌ ½áÁÖ¸é µÈ´Ù. -4131Àº ¿ÞÂÊ Á¤·ÄÀ» ¶æÇÑ´Ù.

wsout.range("C4:E4").api.HorizontalAlignment = -4131

 

¡Ü      Center-aligned : -4108

¡Ü      Right-aligned : -4152

¡Ü      Left-aligned : -4131

 

À§´Â C4:E4¸¦ °¡¿îµ¥ Á¤·Ä·Î ó¸®ÇÑ °á°ú´Ù. ±×·¸´Ù¸é º´ÇÕµÈ ¼¿µéÀ» C4:E4·Î ²À ÁöÁ¤ÇØÁà¾ß ÇÒ±î? ¾Æ´Ï¸é C4¸¸ ÁöÁ¤ÇØÁÖ¸é µÉ±î? º´ÇÕµÈ C4:E4Áß C4¿¡¸¸ ¿ÞÂÊ Á¤·ÄÀ» Àû¿ëÇØº¸ÀÚ. ¿ÞÂÊ Á¤·ÄÀÌ Àß Àû¿ëµÈ´Ù. D4³ª D5¸¦ ÁöÁ¤Çصµ º´ÇÕµÈ ¼¿¿¡ ¿ÞÂÊÁ¤·ÄÀÌ Àß Àû¿ëµÈ´Ù.

wsout.range("C4").api.HorizontalAlignment = -4131

 

 

±×·±µ¥ °¡¿îµ¥ Á¤·ÄÀº -4108À̶ó´Â ¼ýÀÚ¸¦ ¿Ü¿ì±â ºÒÆíÇÏ´Ù. ±×·¡¼­ xlwings¿¡¼­´Â constants.py¿¡ »ó¼öµéÀ» Á¤ÀÇÇØ³ù´Ù.

URL https://github.com/xlwings/xlwings/blob/main/xlwings/constants.py¿¡ Á¢¼ÓÇØº¸¸é »ó¼öµéÀÌ Á¤ÀǵǾî ÀÖ´Â °ÍÀ» È®ÀÎÇÒ¼ö ÀÖ´Ù. ¿©±â¼­ -4108À» °Ë»öÇØº¸ÀÚ. ¾Æ·¡¿Í °°ÀÌ ÁöÁ¤µÇ¾îÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÌÁ¦ -4108 ´ë½Å xlCenter¶ó°í ¾²¸é µÈ´Ù. ´ë½Å ÀÌ »ó¼ö¸¦ ¾²·Á¸é ¾Õ¿¡ xw.constants.Constants.xlCenter¿Í °°ÀÌ xw.constants.Constants¸¦ ºÙ¿© Áà¾ß ÇÑ´Ù.

 

wsout.range("C4").api.HorizontalAlignment = xw.constants.Constants.xlCenter

 

4. Å׵θ® ±×¸®±â(border)

¿¢¼¿À» ¾²´Â ÀÌÀ¯ Áß Çϳª°¡ Å׵θ® ±×¸®±â°¡ ½±´Ù´Â °ÍÀÌ´Ù. ¾Õ¿¡¼­ ¾ð±ÞÇßµíÀÌ ¼¿º´ÇÕÀ» Çϰí Å׵θ®¸¦ ±×¸®¸é ¿øÇÏ´Â Å×À̺íÀ» ¸¸µé ¼ö ÀÖ´Ù. Å׵θ®´Â ¾Æ·¡¿Í °°ÀÌ range¸¦ ¼±ÅÃÇϰí À§Ä¡¸¦ ÁöÁ¤ÇÏ°í µÎ²²¸¦ ÁÖ´Â ¹æ½ÄÀ¸·Î ±×¸°´Ù. range.api.Borders(À§Ä¡) = µÎ²²

constants.py¿¡´Â ¾Æ·¡¿Í °°ÀÌ Á¤ÀÇ µÇ¾îÀÖ´Ù. ¼±µÎ²²´Â 1,-4138,4,2¸¦ ¾µ ¼ö ÀÖ´Â°í ¿ª½Ã constants.py¿¡ ½±°Ô ±â¾ïÇÒ ¼ö ÀÖ°Ô Á¤ÀÇ µÇ¾îÀÖ´Ù.

class BordersIndex:
   xlDiagonalDown =
5 # from enum XlBordersIndex
   xlDiagonalUp =
6 # from enum XlBordersIndex
   xlEdgeBottom =
9 # from enum XlBordersIndex
   xlEdgeLeft =
7 # from enum XlBordersIndex
   xlEdgeRight =
10 # from enum XlBordersIndex
   xlEdgeTop =
8 # from enum XlBordersIndex
   xlInsideHorizontal =
12 # from enum XlBordersIndex
   xlInsideVertical =
11 # from enum XlBordersIndex


class BorderWeight:
   xlHairline =
1  # from enum XlBorderWeight
   xlMedium =
-4138  # from enum XlBorderWeight
   xlThick =
4  # from enum XlBorderWeight
   xlThin =
2  # from enum XlBorderWeight

 

¾Æ·¡´Â C4:X5 ¿µ¿ªÀ» ¼±ÅÃÇØ¼­ ¹Ù±ùÂÊ ¼±Àº µÎ²¨¿î 4, ¾ÈÂÊ ¼±Àº ¾ãÀº 2·Î ¼³Á¤Çؼ­ Å׵θ®¸¦ ±×¸®´Â ÄÚµå´Ù. bordertop µîÀÇ º¯¼ö´Â Äڵ尡 ³Ê¹« ±æ¾îÁö´Â °ÍÀ» ¸·±â À§ÇØ Á¤ÀÇÇÑ °ÍÀÌ´Ù. 

bordertop = xw.constants.BordersIndex.xlEdgeTop

borderbottom = xw.constants.BordersIndex.xlEdgeBottom

borderleft = xw.constants.BordersIndex.xlEdgeLeft

borderright = xw.constants.BordersIndex.xlEdgeRight

borderinsideH = xw.constants.BordersIndex.xlInsideHorizontal

borderinsideV = xw.constants.BordersIndex.xlInsideVertical

wsout.range("C4:X5").api.Borders(bordertop).Weight = 4
wsout.range(
"C4:X5").api.Borders(borderbottom).Weight = 4
wsout.range(
"C4:X5").api.Borders(borderleft).Weight = 4
wsout.range(
"C4:X5").api.Borders(borderright).Weight = 4 wsout.range("C4:X5").api.Borders(borderinsideH).Weight = 2 wsout.range("C4:X5").api.Borders(borderinsideV).Weight = 2

 

5. ¼¿ »ö ä¿ì±â

¼¿À» ä¿ì·Á¸é ¾Æ·¡¿Í °°ÀÌ range¸¦ ¼±ÅÃÇϰí color¸¦ ÁöÁ¤ÇØÁØ´Ù. color´Â (R,G,B)·Î Ç¥ÇöÇÑ´Ù. Çϴûö(cyan)Àº (0,255,255), ³ë¶õ»öÀº (255,255,0)ÀÌ´Ù. RGB color·Î °Ë»öÇÏ¸é ¿øÇÏ´Â »öÀÇ RGB°ªÀ» ½±°Ô ¾Ë ¼ö ÀÖ´Ù.

wsout.range("C4:X4").color = (0,255,255)

 

 

-³¡-




  ÃßõÇÏ±â   ¸ñ·Ïº¸±â

Copyright 1999-2023 Zeroboard / skin by zero
±¸Á¶¼³°èÀÇ ¹Ì·¡¸¦ ÁغñÇÏ´Â ¸ðÀÓ [±¸Á¶¼³°è¹Ì·¡Æ÷·³]