Skip to main content

win32com + python + Office Automation = xython, (for easy automation for excel, word, outlook, regex, color, hwp, etc BY python & win32com)

Project description

4.0.0을 기준으로 각 모듈이름을 변경함 (2025-03-26)

  • 쉽게 : xy_ 접두어로 모든 모듈이름을 변경
  • 공통 변수모듈 : xy_xommon으로 변경
  • 공통변수이름을 vars => xvar로 변경

About xython Package

Functional Programming for Excel, Hwp, Word, Outlook, Color, Etc by win32com
It can handle for Excel, Hwp, Word, Outlook, Color, Etc by xython

xython 패키지는 함수형 프로그램 이다

보통의 프로그래밍으로 하는 방법과 새로운 방법으로의 변경은 분병 장단점이 있습니다.
차후에는 객체형도 동시에 만들예정이지만, 오랫동안 사용자의 입장에서 해보니,
함수형이 훨씬더 사용하기 편하며, 동시에 새로운 요구에대해서 아주 빠른시간에 만들어서 공유가 가능하기 때문에
불필요한 코딩에 시간을 하애하지 않아도 되는 방법으로 판단하였습니다.

함수형 프로그램 객체형 프로그램
Import 필요모듈 Python 프로그램 사용
함수결과_1 = 함수_1(입력값_1) 기본적인 함수사용가능
함수결과_2 = 함수_2(함수결과_1) 다른 언어의 코드의 사용가능
파이썬코드들 자주사용하는기능을 함수로 만들어서 적용
다양한 함수형태가 필요 워드, Color, 정규표현식, Database, E-mail등의 자료도 있음
없는 기능은 사용자가 직접 만들어야 함
* 쉬운 사용성 * 낮은 사용성
* 낮은 고급기능 * 높은 고급기능
80%의 함수 + 20%의 코드 80%의 Python형태의 코드 + 20%의 함수
  • xython은 기본적으로 객체형 프로그램이 아니고, 함수형 프로그램입니다
  • 함수의 결과물들의 나열로 원하는것을 실행하는 프로그램형식입니다
  • 전체적으로 3,000개이상의 함수로 원하는 것을 할수가 있읍니다
  • 쉽게 새로운 함수를 만들어 공유하며, 재사용할수가 있다

official website

oficial document : https://sjpkorea.github.io/xython.github.io/
oficial website : www.xython.co.kr (Korean base)

components about xython package (패키지의 구성)

easy wrapper for belows;

번호 xython package 설명
1 xy_excel for Excel
2 xy_excel_event for Excel VBA Event
3 xy_word for Word
4 xy_hwp for hwp
5 xy_outlook for outlook
6 xy_web for selenium
7 xy_map for folium
8 xy_re for Regex (for common use)
9 xy_time for Date & Time (for common use)
10 xy_color for Color (for common use)
11 xy_db for Database (for common use)
12 xy_list New List (start from 1) (for common use)
13 xy_util utilities (for common use)
14 xy_auto for Keyboard & Mouse control (for common use)

xython 각 모듈의 간략한 설명

번호 xython package
소문자 모두 소문자로 나타낸다
_ 언더바로 기본 3단어를 연결한다
all 모든을 뜻하는 것은 all을 사용한다
리스트형 함수의 입력변수는 input_list => 리스트형
1개의 값일때 input_data/text/value => 1개의 자료
사전형 input_dic => 사전형
1차, 2차 리스트 1차원리스트는 l1d, 2차원은 l2d
동사로 시작 처음 시작 단어는 동사로 시작
좌표 x, y 주소와 영역에 사용되는 것은 x,y로 만들었으며, 이때 x는 가로, y는 세로를 뜻한다
_check _check로 시작하는 경우는 내부적으로 확인하는 목적으로 사용한다
함수이름 이름은 가능하면 쉽게, 연상이 가능한 방법으로, 기본 3자리로 만들었으며, 어떤 이름은 약간 억지스러운 것도 있으니 이해 바랍니다
함수이름의 형태 가급적 동사_어떻게_전치사_적용대상_추가설명 의 형태로 사용
접두사나 접미사 인수에 input_나 i_이나 _i로 끝나는 형태의 메소드의 인수는 기본값을 갖지 않은것으로 값을 입력을 해야 한다

xy_excel, xy_excel_event에 대하여

win32com을 이용해서 엑셀의 자동화를 좀더 편하고 쉽게 사용할수 있도록 만든 모듈 셀로 이루어진 특성상 range의 형태를 많이 사용하며, 자료의 변경이 많이 필요합니다

  1. 읽을때는 read, 쓸때는 write, 삭제는 delete, 추가는insert등을 사용하였습니다
  2. 두번째의 이름의 규칙은 관련된 부분에 따라 다른것을 사용하며 다음과 같은 것이 사용이 됩니다 거진 영역을 나타내는 부분으로 사용하였습니다 range, workbook, cell, line, column
  3. 세번째 부분이 어떤 일을 할것인지를 알아보는 것입니다

xy_word와 xy_hwp에 대하여

워드와 아래아 한글을 사용하기 쉽도록 만든 모듈로, 엑셀과 다르게 워드프로세스의 특성상 글자/단어/라인/문단의 형식으로 원하는 것을 실행시키면 됩니다

기본적으로 줄, 단어, 문단등의 조건으로 커서나 선택을 할수가 있읍니다

아래아 한글을 사용하기 편하도록 사용하기위해 만들었다. 만약 워드나 엑셀의 자료를 서로 옮기는것은 ganada, pcell을 이용하면 된다

줄이나 단어등을 기준으로 이동이 가능하도록 함
테이블을 만들고, 좌표를 기준으로 Text를 넣을수 잇돌고 함
원하는 위치에 text삽입가능
글자색을 scolor로 이용하여 적용가능

xy_outlook에 대하여

메일을 쉽게 관리하는 도구입니다

  • 메일을 쓰고, 읽는 기능
  • 이것의 장점은 엑셀이나 Util과 연동하여 편의성을 더욱 증대하고있읍니다
  • 기본적인 사용법이나 함수의 이름은 같은 형태를 따릅니다

xy_web에 대하여

selenium을 기반으로 사용하기 쉽도록 만든 것 여러가지 웹브라우져를 쉽게 사용하는 메소드와 속성을 갖고있읍니다 웹상태의 자동화를 쉽게 할수있도록 도와주는 것입니다

xy_map에 대하여

지도를 다루는 folium을 베이스로 하여, 웹브라우져를 기본으로 지도를 쉽게 만드는 여러 메소드들을 만들었읍니다

xy_re에 대하여

어렵게 되어있는 정규표현식을 모르는 사람이 보더라도 알아볼수있도록 만든것입니다 기본적인 형태는 아래와 같읍니다

변경전 변경후
([a-zA-Z0-9_.+-]+)@[a-zA-Z0-9_.+-]+.[a-zA-Z0-9_.+-]+ [영어&숫자.+-:1~]@[영어&숫자.+-:1~].[영어&숫자.+-:1~]

이렇게 바꾸면 좀더 읽기가 쉬워진다

  • 대괄호로 묶는다
  • 특수문자(re모듈내에 의미가있는 문자)는 \를 붙여서 사용한다
  • 어떤문자의 앞과뒤에있을때는 (앞에있음:abc)이라고 사용하면 abc가 앞에있는 문자열을 찾는것이다
  • 건수는 를 사용하여 45라는 식으로 표현을 하였고
  • 한글, 영어와 같은 것은 대괄호를 사용하여 적용하였다 [한글]
  • 처음과 끝은 [처음], [끝]처럼 나타냈다
  • 그리고 이것은 누가 보아도 아~~ 무엇을 찾을려고 했는지를 알수있도록 하기위한것이며
  • 찾기기능중에 전부 찾아서 보기쉽도록 돌려주는 것과 같은 몇가지 메소드들을 만들어 넣었읍니다

xy_time에 대하여

시간을 다루는 여러가지 메소드를 쉽게 사용가능하도록 만든것이며, 여러가지 시간의 형태로 변경이 가능합니다
또한 양역과 음력을 구분하며, 공휴일을 갖고오는 기능도 있읍니다

  • 2024년의 3번째 주의 리스트를 갖고오고 싶을 때
  • 엑셀의 많은 자료중에서 날짜를 골라내고 싶을 때
  • 오늘 날짜의 123일 전의 날짜
  • 대부분의 함수는 자료를 변경하는 기능이 많읍니다

xy_color에 대하여

색을 나타내는 방법을 좀더 편하고 쉽게 사용하고 싶어서 만든 모듈입니다

  • 색을 변경하고 관리하는 모듈이며
  • 색의 변화를 잘 사용이 가능하도록 하기위한 것이다
  • 기본 입력 예 : "빨강", "빨강55", "red55", "0155"
  • 기본색 ==> 12색 + (하양, 검정, 회색),
  • 큰변화 ==> 19단계, 작은변화 ==> 19단계
  • 기본함수 : get_color_rgb("red55"), get_rgb_3input(색, 큰변화, 작은변화)
  • 언급이 없는 기본은 모든 색의 표현이나 결과는 rgb로 돌려준다

xy_db에 대하여

엑셀자료, 리스트, 사전, pandas, sqlite등의 자료를 쉽게 서로간에 변경이 가능하도록 만든 것 보통 자료를 다룰때 조그마한 자료를 넘어 일정수준의 자료는 DB에 저장을 하거나 다른 곳에 저장을 해야 합니다 이럴때를 포함하여 여러자료들을 상호간에 변경을 해야하는 경우가 많은데 그때 사용가능하도록 만든 것입니다

xy_list에 대하여

기본 리스트의 기능에 1부터 시작하는 기능을 추가하여 만든것이며, 일부 리스트의 변경에 사용되는 메소드를 추가하여 만든 새로운 사용자형 자료형입니다

  • 기본적인 리스트의 기능은 같다
  • 대괄호안에 문자로 물결표시를 사용하여 구간을 표시
  • ~ 표시를 사용하면 무조건 리스트형으로 결과를 돌려준다
  • ~와 :은 같은 기능이지만, “”안에 사용되는 기준입니다
  • 추가적인 메소드로 도움되는 함수가 있다
  • to_list함수는 일반함수로 만들어주는 기능입니다

xy_util에 대하여

일반적인 자료들의 변경등의 전반적인 분류가 어려운 함수들을 담고있는 부분입니다

xy_auto에 대하여

자동화업무를 하고싶을때가 많은대, 그때 추가적으로 요구되는 사항중에 하나가 마우스나 키보드의 기능을 원하는 곳으로 이동을 하는등의 일을 하는 것입니다
생각보다 많은 부분에서 마우스나 키보드를 잘 제어를 한다면, 매번 똑같이 다루는 일들을 보다 편하게 사용하는 방법이 되기도 합니다.
이 모듈은 전반적으로 마우스와 키보드에 대한 여러가지 메소드와 모니터등의 정보에 대한것들을 쉽게 다루도록 만든 것입니다. 이 모듈을 하기위해서는 각 프로그램의 핸들을 찾는 방법등의 관련 기능의 확인이 필요합니다

주요 메소드이름의 이해

공통 용어

모듈 설명
0,0 왼쪽아래
cpx 셀의 좌표번호
curr_x 키보드등으로 움직이는 현재의 셀
current 어떤 객체 든지 현재에 활성화된것을 뜻함
data 결과값으로 어떤 종류의 자료를 돌려줄 때
dtx 두 셀간의 차이
dx 두지점간의 차이
mx, mpx 마우스의 좌표
pwh 넓이, 높이의 길이를 픽셀단위로 나타낸것
px 그림을 그리고 싶은 좌표, 커서의 픽셀 좌표
x, y cell의 기본좌표, X: 가로줄번호, Y: 세로줄 번호
xx 가로줄의 영역, [3,6]
xy 하나의 셀에대한 좌표
xyxy 셀의 영역에 대한 좌표
yy 세로줄의 영역, [3,6]
tbl_x 테이블의 x
tx cell의 번호에 대한것, table에서 몇번째 셀이라는 쯧
win_x 윈도우의 x
sel_x 셀렉션된 영역
dic 자료의 형태가 dic형태로 줄때는 맨뒤에 dic을 붙임
By_limit 번호가 들어가 그때까지 적용
By_step 번호가 들어가 그 간격으로 실행될 때

메소드의 이름규칙

모듈 설명
add 기존에 있는것의 일반적인 끝에 넣는 것
append 맨끝에 추가할 때
change 입력값을 바꾸는 목적
check 확인
control 어느 영역안에서 조정을 할 때
delete 삭제하기
draw 선을 그을 때 사용
fill 넣기
find 찾기
get 입력값이 없는 조건에서의 자료를 갖고올때 , read를 제외한 모든 자료를 갖고올 때
index 몇번째의 순서대로 어떤 것을 하는 것
input 내부적으로 어떤 값을 넣을 때
input_dic 사전형식일 때
input_l1d 1차원 리스트가 입력값일 때
input_l2d 2차원 리스트가 입력값일 때
input_value 숫자형의 자료가 입력될때
insert 내가 원하는위치에 넣는 것
make 만들기
move 이동하기
new 새로운것을 만드는 개념
obj 객체를 뜻함
paint 영역에 색칠하는 것
pick 여러개중에서 하나를 갖고올 때
read 입력값이 있으면서 어떤 자료를 갖고올 때 사용, 보여지는 자료의 값을 갖고올 때
replace 바꾸기
search 찾기
select 어떤 영역을 선택할 때
set 입력값이 특별한것없이 자료를 설정하는 것, 설정값을 변경할 때
split 분리하기
write 눈에 보이는 것

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xython-4.2.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xython-4.2.0-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file xython-4.2.0.tar.gz.

File metadata

  • Download URL: xython-4.2.0.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for xython-4.2.0.tar.gz
Algorithm Hash digest
SHA256 dc2a60d8a6981b106d8c3be25d115c08bf5a4e2a9fa47b73e50fcd0c8ae1ac45
MD5 d94694aedc6167c724b8a57f1830655f
BLAKE2b-256 3bd6c7c3170fada6c55800f601bdff615f3b1553c1601f32be1e14d73a609038

See more details on using hashes here.

File details

Details for the file xython-4.2.0-py3-none-any.whl.

File metadata

  • Download URL: xython-4.2.0-py3-none-any.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for xython-4.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b9090d9324b17447e7380ea591a2abf35d430083caaf37069c460ab3cffafc96
MD5 1ef5a90393b528fbcb6a017e5ca20180
BLAKE2b-256 d8d89125243717900f365f054c2b6201ffb8afe7e175c430d551b0ae10eee110

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page