Skip to main content

EXCEL, WORD, OUTLOOK, REGEX, COLORING, HWP BY PYTHON

Project description

About xython module / 개요

Functional Programming for Excel, Hwp, Word, Outlook, Color, Etc by win32com
win32com으로 만든 함수프로그램 (함수들을 사용해서 업무자동화를 위한 방법)

Manual / 사용법

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

Components / 구성은

- anydb       : for Database    / sqlite와 pandas 를 좀더 쉽게 사용할수있도록 만든것
- basic_data  : xython package for general enum / xython패키지에서 사용되는 전반적인 공유 자료들을 저장하는 곳
- ganada      : for Word        / 워드를 다루기위해 만든 것
- han         : for hwp        / 아래아 한글을 다루기위해 만든 것 (*** New)
- jfinder     : for Regex       / 정규표현식을 좀더 편하게 사용하도록 만든 것
- mailmail    : for outlook     / outlook을 다루는것
- pcell       : for Excel       / 엑셀을 다루는 것
- pcell_event : for Excel Event / 엑셀의 이벤트를 다루는것
- pyclick     : for KEyboard & Mouse control / 키보드와 마우스를 다루는 모듈
- pynal       : for Date & Time / 시간과 날짜를 다루는것
- scolor      : for Color       / 색의 RGB값을 편하게 사용가능하도록 만든 것
- xy_list     : New List Type / 1부터 시작하는 List 자료형
- youtil      : utilities / 이러저런 문장이나 시간등을 변환하는데 도움이되는 것

Brief / 개괄적인 설명

this is target for easy RPA system of office work
It composed of several python files, and basic concept is function style
total over the 2500 functions in this package
please see how to use for this package in xython.co.kr
now under making GUI toolkit for easy & no installing for python for this package

이모듈은 업무용으로 많이 사용하는 엑셀 , 색, 정규표현식, 등에 대하여 Python과 win32com을 기본으로 사용하여 각기 새롭게 모듈을 만들어서 좀더 쉽고 편하게 사용하고 만들자는 것입니다 자동화는 각자의 사용에 대한
만든 이유는 우리가 업무등을 하는 입장에서, 손으로 작업하기에는 양이 많고, 그렇다고 계속 반복적으로 일어나는 일은 아니며, VBA등을 만들어서 사용하기에는 어렵고 힘든 부분에 대해서
파이썬이라는 훌룡한 언어를 위용하여, 좀더 쉽고 간결하게 몇가지 기능만 배워도 20줄안으로 자신만의 코드를 만들어 사용할수있는 기준을 만들기 위한 것입니다
또한 보통 많이 사용하는 코드들은 첨부된 sample코드를 보시거나 저의 사이트에 와서 비슷한것을 다운 받은후 변경해서 사용하시기를 추천 드립니다
좀더 편한 업무의 일을 하기위한 것입니다

개괄적인 설명

모듈이름 설명
1 anydb sqlite와 pandas 를 좀더 쉽게 사용할수있도록 만든것
2 basic_data 패키지에서 사용되는 전반적인 공유 자료들을 저장하는 곳
3 ganada 워드를 다루기위해 만든 것
4 jfinder 정규표현식을 좀더 편하게 사용하도록 만든 것
5 mailmail outlook을 다루는것
6 pcell 엑셀을 다루는 것
7 pcell_event 엑셀의 이벤트를 다루는것
8 pyclick 키보드와 마우스를 다루는 모듈
9 pynal 시간과 날짜를 다루는것
10 scolor 색의 RGB값을 편하게 사용가능하도록 만든 것
11 youtil 이러저런 문장이나 시간등을 변환하는데 도움이되는 것

img_1.png

Version History / 버전 변화

- 1.15.0 : word를 위한 ganada모듈을 전반적으로 많이 Update함
- 1.16.0 : applied docstring style for all files
- 1.17.0 : connected with github document system
- 1.18.0 : 최적화 진행중, 일부 함수들 추가 및 삭제
- 1.19.0 : 최적화 진행중
- 1.20.0 : 최적화 진행중
- 2.0.0 : 전체적으로 정리 및 고정화
- 2.1.0 : 전체적으로 변경하였으며, han으로 hwp를 사용하는 새로운 모듈을 만듦
- 2.2.0 : han과 ganada의 함수이름을 통일 시키는 부분을 변경하고, han을 많이 추가함
- 3.0.1 : 전체적으로 최적화를 실시 (잘못해서 기존의 자료들을 전부 삭제..ㅠㅠ)
- 3.0.3 : mygrid를 별도의 패키지(xygrid)로 분리

xython은

자주 사용하는 대부분의 기능을 함수로 만들고, 함수를 여러 개 사용하여 원하는 기능을 만드는 것

  • 공통의 기준 용어를 사용한다
  • 공통된 함수 이름의 작성기준
  • 엑셀의 VBA는 사용하기 어려워 Python을 이용하여 쉽게 엑셀의 기능을 사용하도록 만들고 싶었다
  • 이런 파이썬의 새로운 모듈을 만들어서 여러사람들이 쉽게 만들 수 있도록 하고 싶었다
  • 또한 엑셀의 메뉴바를 만들어 기능을 쉽게 만들고 싶었다
  • 누군가 만들어 놓은 좋은 코드를 쉽게 공유가 가능하도록 하고 싶었다
  • 공유는 버튼을 누르면 자동으로 실행되도록 하고 싶었다(아직…)
  • 자신만이 사용하고 싶은 코드는 따로 사용이 가능하도록 하고 싶었다
  • 다른나라의 언어로 편하게 사용가능하도록 변경 예정

img_2.png

이 패키지의 큰 특징은 아래와 같다

  • 업무에 요구되는 코딩들을 함수처럼 사용하게 만들었고,
  • 사용하기 쉬워야 하고
  • 확장가능성도 있으며
  • 코딩에 대하여 아무것도 몰라도, 클릭만으로 필수적인 부분들을 다룰 수 있고
  • 다양한 예제를 갖고 와서 직접 업무에 사용이 가능하고
  • 한글로 설명이 풍부하게 되어있으며
  • 다른 분야에 적용도 가능하도록

기본 사용법

anydb : 리스트, 사전, sqlite, dataframe의 자료를 서조 편하게 변경하는 것

공부를 하던중에 생각보다 자료들을 어딘가에 자료를 저장 해야하는 경우가 많은데, 매번 엑셀에 저장하는 것은 실시간의 자료와 같이, 어쩔수없이 database를 사용해야 하는 경우들이 생긴다 이럴때, 우리가 자주 사용하는 자료의 형태들을 쉽게 여러가지 형태로 변경을 할수있도록 만들면 어떨까라고 생각을 해서 만든 것이 anydb모듈입니다 제일 많이 사용하는 자료형은 리스트지만 사전으로도 가끔 바꾸고, database로도 바꾸는 형태들이 점점 많아 집니다 물론 1차원이나 2차원으로 변경되는 경우들도 있지요. 그러다가 기본 자료형을 다른것으로 바꾸는 공부를 한계기도 되면서, 자주 사용하는 리스트의 자료형의 변경부분을 메소드를 넣어서 사용합니다

pcell : 엑셀의 자동화를 쉽게 만든것

1. 이름은 기본적으로 3부분으로 만들었으며 각부분은 언더바(_)로 연결했습니다
2. 읽을때는 read, 쓸때는 write, 삭제는 delete, 추가는insert등을 사용하였습니다
3. 두번째의 이름의 규칙은
	관련된 부분에 따라 다른것을 사용하며 다음과 같은 것이 사용이 됩니다
	거진 영역을 나타내는 부분으로 사용하였습니다
	range, workbook, cell, line, column
4. 세번째 부분이 어떤 일을 할것인지를 알아보는 것입니다
5. 일반사항은 다음과 같습니다

han : 아래아 한글의 자동화를 위한것

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

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

scolor : 색을 편하게 사용하기위해 만든것

이것은 모든 외부로 들어오고 나가는 것은 전부 RGB형태로 이루어지도록 만든다

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

Jfinder : 정규표현식을 쉽게 사용하기 위해

  • 아래의 코드들은 정규표현식을 사용하면서, 내가 만든 표현식조차도 다시 읽기가 어려워서, 나름 다른 형태로 만들어 본것인데. 생각보다 가독성이 좋아서 같이 공유해보는것이다 또한 만든김에 결과로 돌려주는것도 하나만 받으면 전부 가능하도록 만들어 보았다 위에서 언급한 이메일 형식이 맞느지를 보는 것은 상당히 반복적이기 때문에 크게 혼돈은 없다 하지만, 실제 코드를 사용하다 보면, 외계어를 해석하는 상태까지 와야할 경우가 있다

    ([a-zA-Z0-9_.+-]+)@[a-zA-Z0-9_.+-]+.[a-zA-Z0-9_.+-]+

  • 이정도만해도 간단한 축에 속한다. 맨처음 만들때는 그나마 이해를 하지만, 다른사람이 만든 것을 이해하는데 상당한 시간이 걸린다는 것이고, 또한 일반적인 사용자들이 이것을 공부하고 이해하는데 어려움이 잇을 것 같으면서 동시에, 정규표현식의 강력함을 사용할수 있도록 생각해 보는 것이다 그래서 좀더 간단하게 사용법을 만들고,

    [영어&숫자.+-:1~]@[영어&숫자.+-:1~].[영어&숫자.+-:1~] 이렇게 바꾸면 좀더 읽기가 쉬워진다

mailmail : 아웃룩의 이메일을 관리하는 도구

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

pynal : 시간관련된것을 쉽게 사용하는 모듈

  1. 시간을 다루는 모듈에서 가장 필요한 부분이, 입력된 자료가 시간 비슷한데, 제대로 인식이 되지 않는 형태들이 많습니다. 그럴때 이것을 잘 인식하게 하는 기능이 중요하며
  2. 두번째는 시간을 내가 원하는 숫자로 쉽게 변경하는 기능입니다
  3. 시간을 쉽게 이동시키는 기능 우리가 지금부터 다루는 대부분의 일들이 바로, 위의 3가지를 혼합하거나 변형하는 기능들입니다

xy_list : 1부터 시작되는 리스트 자료형을 만든것

xylist를 만든 목적은 점점 0과 1이 혼돈이 될때가 많아서, 그냥 일반적으로 사용하는 사람들이 알아듣는 물결무늬로 아예 다른 방식으로 표시를 해보면 혼돈이 안될 것 같아서, 만들어 본것이다

youtil : xython안의 모든 모듈에 전반적으로 사용가능한 기능

img_5.png

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-3.0.5.tar.gz (344.8 kB view hashes)

Uploaded Source

Built Distribution

xython-3.0.5-py3-none-any.whl (374.4 kB view hashes)

Uploaded Python 3

Supported by

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