halmoney 3.0.0
Easy Read / Write for Excel, Word, Color, Etc using Python
Requires Python: >=3.5

## Halmoney 모듈에 대하여
### 개괄적인 설명
이모듈은 업무용으로 많이 사용하는 엑셀 , 색, 정규표현식, 등에 대하여 Python과 win32com을 기본으로 사용하여 각기 새롭게 모듈을 만들어서 좀더 쉽고 편하게 사용하고 만들자는 것입니다
자동화는 각자의 사용에 대한  

만든 이유는 우리가 업무등을 하는 입장에서, 손으로 작업하기에는 양이 많고, 그렇다고
계속 반복적으로 일어나는 일은 아니며, VBA등을 만들어서 사용하기에는 어렵고 힘든 부분에 대해서

파이썬이라는 훌룡한 언어를 위용하여, 좀더 쉽고 간결하게 몇가지 기능만 배워도 20줄안으로 자신만의 코드를
만들어 사용할수있는 기준을 만들기 위한 것입니다

또한 보통 많이 사용하는 코드들은 첨부된 sample코드를 보시거나 저의 사이트에 와서 비슷한것을 다운 받은후
변경해서 사용하시기를 추천 드립니다

좀더 편한 업무의 일을 하기위한 것입니다

### 구성은 

    - anydb : sqlite와 pandas 를 좀더 쉽게 사용할수있도록 만든것
    - basic_data : halmoney패키지에서 사용되는 전반적인 공유 자료들을 저장하는 곳
    - ganada : 워드를 다루기위해 만든 것
    - jfinder : 정규표현식을 좀더 편하게 사용하도록 만든 것
    - mailmail : outlook을 다루는것
    - pcell : 엑셀을 다루는 것
    - pcell_event : 엑셀의 이벤트를 다루는것
    - pyclick : 키보드와 마우스를 다루는 모듈
    - pynal : 시간과 날짜를 다루는것
    - scolor : 색의 RGB값을 편하게 사용가능하도록 만든 것
    - youtil : 이러저런 문장이나 시간등을 변환하는데 도움이되는 것

각 사용사용방법들에 대해서는 아래의 사이트를 참고하세요

* https://cafe.naver.com/pycell
* www.halmoney.com


## 기본 사용법
### pcell
-각 메소드는 각각 별도의 내용으로 사용합니다

Pcell의 모듈을 만들 때 나름대로 편하고 쉽게 이름을 만들려고 하였습니다. 기본적인 틀을 만들어 놓으니, 분명억지로 지어진 이름또한 있음을 시인합니다. 나름대로 생각하고 고심한끝에 만들어진 이름이오니 맘에 들지 않는 부분이 있이더라도 양해를 부탁드립니다

물론, 지금의 이름이 최종이라고는 생각하지 않고 있습니다. 좋은 이름이라는것은 어떤 메소드가 들어가 있는지 잘 몰라도 거의 사용하는데 사람의 생각에서 쉽게 사용을 할수 있도록 만드는 것이라고 생각을 합니다

아마 한 4~5번정오는 크게 이름을 변경한 것 같습니다. 만들어놓고 조금지나면 저스스로가 도데체 이것의 이름은 왜 이렇게 만들어놓은거야???라는 질문을 하는경우가 가끔있습니다. 이리바꾸고 저리바꾸어도 맘에 안드는구석이 아직 많습니다

한사람의 이름이 인생에서 차지하는부분이 많듯이 제가만든것또한 그러하지만, 만약 맘에 안드시는 것이 있으시면 본인스스로가 바꾼어서 사용하셔도 됩니다

단, 기존의것은 그대로 두시고 아래부분에 새로운 메소드를 추가하셔서 위의것을 그대로 사용하시면 될것입니다

그래서 다음과 같은 원리를 이용해서 만들었으나, 조금은 틀린부분도 있지만…

	1. 이름은 기본적으로 3부분으로 만들었으며 각부분은 언더바(_)로 연결했습니다
	2. 읽을때는 read, 쓸때는 write, 삭제는 delete, 추가는insert등을 사용하였습니다
	3. 두번째의 이름의 규칙은
		관련된 부분에 따라 다른것을 사용하며 다음과 같은 것이 사용이 됩니다
		거진 영역을 나타내는 부분으로 사용하였습니다
		range, workbook, cell, line, column
	4. 세번째 부분이 어떤 일을 할것인지를 알아보는 것입니다
	5. 일반사항은 다음과 같습니다

-	모든함수에는 sheet가 명시되어야 합니다
-	값을 읽는것은 read로 시작하며
-	값을 쓰는 것은 write로 시작합니다
-	선을 긋는등의 그림은 dwg로 시작합니다
-	하나의 자료가 아닌, 자료의 묶음은 Range를 사용한다
-	두개의 문구사이에는 '_' 로 연결을 하였다 예) read_cell
-	메소드는 모두 소문자를 사용함

예를 들어, 어떤셀에 값을 입력하는 것은 write_value_in_cell라는 이름으로 구성하였습니다
그리고 부가적으로 함수의 변수로 사용되는부분은 큰 것->작은것으로 만들었으며, 영역을 표시하는 부분은 모두 리스트를 기준으로 하나로 만들었습니다.

그저, 그렇다는것을 이해바라며, 실질적으로 코드를 보시면 더 쉽게 이해가 가실것으로 생각됩니다.
보지않고 찾지않아도 함수의 이름을 생각해낼수있도록 만든다고 나름대로 정의한 것입니다.

### scolor
이것은 모든 외부로 들어오고 나가는 것은 전부 RGB형태로 이루어지도록 만든다

    - 색을 변경하고 관리하는 모듈이며
    - 색의 변화를 잘 사용이 가능하도록 하기위한 것이다
    - 기본 입력 예 : "빨강", "빨강55", "red55", "0155"
    - 기본색 ==> 12색 + (하양, 검정, 회색),
    - 큰변화 ==> 1~9단계, 작은변화 ==> 1~9단계
    - 기본함수 : get_color_rgb("red55"), get_rgb_3input(색, 큰변화, 작은변화)
    - 모든 색의 표현이나 결과는 rgb로 돌려준다

### Jfinder
이름을 **Jfinder**라고 지었으며, 아래와 같은 특성을 가지고 있다

1. 건수는 ~를 사용하여 4~5라는 식으로 표현을 하였고
2. 한글, 영어와 같은 것은 대괄호를 사용하여 적용하였다 [한글]
3. 처음과 끝은 [처음], [끝]처럼 나타냈다
4. 그리고 이것은 누가 보아도 아~~ 무엇을 찾을려고 했는지를 알수있도록 하기위한것이며
5. 찾기기능중에 전부 찾아서 보기쉽도록 돌려주는 것과 같은 몇가지 메소드들을 만들어 넣었읍니다
제일 중요한 코드를 만드는 기능은 아래와 같읍니다
대략적으로 위의것을 읽은후에 보시면 이해가 되실부분이 많읍니다

* 아래의 코드들은 정규표현식을 사용하면서, 내가 만든 표현식조차도 다시 읽기가 어려워서, 나름 다른 형태로 만들어 본것인데. 생각보다 가독성이 좋아서 같이 공유해보는것이다
또한 만든김에 결과로 돌려주는것도 하나만 받으면 전부 가능하도록 만들어 보았다
위에서 언급한 이메일 형식이 맞느지를 보는 것은 상당히 반복적이기 때문에 크게 혼돈은 없다
하지만, 실제 코드를 사용하다 보면, 외계어를 해석하는 상태까지 와야할 경우가 있다


    ([a-zA-Z0-9_.+-]+)@[a-zA-Z0-9_.+-]+\.[a-zA-Z0-9_.+-]+

* 이정도만해도 간단한 축에 속한다. 맨처음 만들때는 그나마 이해를 하지만, 다른사람이 만든 것을 이해하는데 상당한 시간이 걸린다는 것이고, 또한 일반적인 사용자들이 이것을 공부하고 이해하는데 어려움이 잇을 것 같으면서 동시에, 정규표현식의 강력함을 사용할수 있도록 생각해 보는 것이다
그래서 좀더 간단하게 사용법을 만들고,


    [영어&숫자.+-:1~]@[영어&숫자.+-:1~]\.[영어&숫자.+-:1~]
이렇게 바꾸면 좀더 읽기가 쉬워진다

**jfinder**에는 자주사용하는 언어를 등록할수도 있읍니다. 예를 들어 일본어나 한자를 등록한것처럼 하면 사용이 가능하다.
간단하게 다시 사용하는 방법을 알려주면, 너무 줄여놓은 정규표현식을 좀더 늘이는 것이라고 생각하면 됩니다. 여기에서 느낀 부분은 전문가가 사용하기에는 좋지만, 비전문가가 사용하기 쉽게, 예전에는 단어1개가 아주 중요한 속도까지 영향을 주지만, 지금은너무 줄이지 않아도 된다는 것이다. 기계에 가까운 언어에서 좀더 사용자에 가까운 언어로 만들어도 된다는 것이지요
파이선이 사용하기에 좀더 편한방법이 되는 것이지요

    - 대괄호로 묶는다
    - 반복갯수는 대괄호안에 사용하며 ~로 나타낸다
    - 맨처음 맨마지막등의 용어는 [처음], [끝]등의 이유로 나타낸다 
    - 특수문자(re모듈내에 의미가있는 문자)는 \를 붙여서 사용한다
    - 어떤문자의 앞과뒤에있을때는 (앞에있음:abc)이라고 사용하면 abc가 앞에있는 문자열을 찾는것이다