pcell이란 무엇인가 (python + win32com + excel)
작성자
sjpark
작성일
2024-08-17 09:33
조회
134
기본설명
엑셀을 사용하다보면 기본적인 기능을 가지고는 쉽게 해결되지 않거나 잘 않되는 것들에 부딛힐때가 있읍니다. 그럴때, 여러가지 해결방안중에 VBA를 사용해서 그 부족한 부분을 보완해서 사용하곤 했는데, 어느날 파이썬으로 엑셀의 여러 기능들을 읽고/쓰는 기능이 가능한걸 알고, 몇가지 연습을 해보고 하니 생각보다 쉽고,편해서 개인적으로 좀더 여러가지를 만들어서 종종 사용하다가, 자주 사용하는 것을 모아 모듈 형식으로 만들어 사용하면 어떨까 라고 생각을 하고 만들어서 사용하게 된 것이 pcell의 시초입니다그래서 아주 오랜시간동안 일부 open사이트에 올려놓기는 하였지만, 별다른 홍보를 하지는 않았습니다
이 pcell의 형태로 모듈을 실제로 만들어서 사용한 것은 거의 15년이 넘어갑니다. 그냥 맨처음에는 개인적으로 만들어서 사용하기 위한 목적으로 하였고, 지금도 그때와 크게 다른 부분은 없지만, 여러해동안 사용해본 결과는, 좋다라는 부분입니다.
결국 자동 반복되는 것을 하는 것 아닌가? 4가지정도의 형태로 구분을 한다. 이것을 쉽고 편하게 하면 도움이 더 되는 것 아닐까?
- 자료 갖고 오기
- 자료 변경하기
- 자료 쓰기
- 여러 자료를 어떤 반복적인 행위 후에 써넣기
맨처음 만들었을당시에는 없던 pypi가 생겨서 간단히 pip install xython를 하시면 설치가 되며,
이모듈은 pywin32 모듈이 꼭 필요한 것입니다
Pcell의 장단점
제가 만들었지만 이런저런 장단점이 존재합니다. 그저 간략적이고도, 그래도 좋다는 쪽으로 언급을 더욱 많이 하여야 하겠이지요지요!문제는 Python에 대해서 좀 알고있는 사람들에게는 이것이 더 쉬울수가 있는데, 프로그래밍에 대해서 접해보지 않았거나 VBA를 모르는 분들을 이해 시키는부분이 어렵다
장점 | 단점 |
PYTHON으로 만들었다 | 엑셀의 모든 VBA기능에 대한것을 만들어 놓지 않았다 |
엑셀의 VBA보다 PYTHON이라는 프로그램을 이용하여 VBA보다 훨씬 강력한 제어가 가능하다 | 속도에서 다른 인터프리터가아닌 언어보다 느릴수 있다 |
프로그래밍하기가 수원하다 | 엑셀이외에 설치해야하는 프로그램과 에디터가 필요하다 |
FREEWARE이다 | Python을 알아야 한다 |
각자가 자기만의 엑셀을 만들수 있다 | 어떤 것을 만들어서 다른사람에게 줄 때, 엘셀화일 이외에 Python파일이 있어서 당황한다 |
Text로 변환하거나 하는 기능들이 더욱 고급기능을 쉽게 사용할수있다 | 다른 사람이 만든 모듈보다 전문적이지 않다 |
Python 의 좋은 모듈들을 사용하여 가공할 수가 있다 | |
vba를 배우지 않고, 몇개 함수형태로 된 것을 사용하면, 프로그램을 하듯이 고급 기능을 사용할수있다 | |
다른 모듈 보다 사용자 효율성에 더욱 치중하고 있다 |
pcell의 역사
하도 오래전에 만들어 놓은 것이라 한번 찾아보도록 노력해 보았더니, 일단 2001년도까지 있는것을 보니 그전쯤되는것 같다그러다가 일단 글로 찾은건 1.3버전으로 만든 2002년 4월 18일자로 문서로 만든게 있어서 올려봅니다
저도 도데체 언제부터 엑셀과 파이선을 가지고 업무에 이용을 했었는지를 한번 돌아보느라고 만들어 본것입니다
2005년전쯤엔가 sourceforge에도 오렸던것 같은데..
이제는 찾을수도 없네요...
==================================
현재까지의 만든 상황을 기술한다
*** 1.0에 추가된 사항
이모듈은 통합적으로 웬만한 것들은 사용이 가능하도록 만들었읍니다
1. 모든함수에는 sheet가 명시되어야 합니다
2. 값을 읽는것은 read로 시작하며
3. 값을 쓰는 것은 write로 시작합니다
4. 선을 긋는등의 그림은 dwg로 시작합니다
5. 하나의 자료가 아닌, 자료의 묶음은 Range를 사용한다
6. 두개의 문구사이에는 '_' 로 연결을 하였다 예) read_cell
7. 메소드는 모두 소문자를 사용함
*** 1.3에 추가된 함수들 :2002-4-18
1. insert #한줄삽입하기
2. compare_data #위아래 비교
3. delete #한줄삭제하기
4. statusbar #스테이터스바
5. all_sheetsname #현재 워크북의 모든 시트알아내기
*** 2.0에 추가된 함수들 : 2003-6-24
1. only_one #중복된 리스트의 자료를 없애는 것이다
2. only_one_del #중복된것중에서 아무것도없는 []마저 없애는 것이다
3. all_upper #모든 리스트의 자료를 대문자로 만드는것이다
4. all_lower #모든 리스트의 자료를 소문자로 만드는것이다
5. all_capitalize #모든 리스트의 자료를 첫글자만 대문자로 만드는것이다
6. del_cont #연속된같은값만 삭제
7. del_zzacsu #짝수값을 삭제
8. del_holsu #홀수값을 삭제
9. insert_new_line #리스트에 일정한 간격으로 자료삽입
*** 2.3에 추가된 함수들 : 2003-7-3
1. Activesheet에대한 함수추가
2. 함수의 변수로 들어가는 각 시트의 이름을 activesheet라고 명기를 하면, 자동으로 현재 오픈되어있는 시트의 이름이 들어갑니다
*** 2.5에 추가된 사항들 : 2003-7-4
1. activesheet를 전역변수를 사용하여 변경 하였다
2. 자동필터기능을 할수있는 함수를 넣었다
3. 시트의 이름을 바꿀수 있는것을 넣을수 있도록 하였다
*** 3.0에 추가할 사항
1. filemanager를 상속받아 사용할수 있도록 한다
2. 한글이 약간씩 문제가 일으키는것을 보완하도록 한다
3. 셀서식설정
4. 2.5에서 잘못된 부분 수정
*** 3.1에 추가할 사항
1. ullalla_time의 이름을 sjpark_time으로 변경
2. 이부분에서 import한 string와 time모듈을 불러들이지 않음
(sjpark_time에 이미 들어가 있음)
*** 3.2에 추가할 사항
1. fixstringsanddates를 별도의 함수로 분리하여 사용이 가능하도록 만듬
2. fixstring 함수 추가
3. 대소문자를 변경하는 capital함수 추가
*** 3.3에 추가사항 : 2003-9-18
1. 행과열의 넓이와 높이를 각개로 변경할수 있도록 추가하였다
2. 약간의 버그 수정
*** 4.0에 추가사항
1. SJPARK_TIME모듈을 이곳에 포함시킴
2. GENERAL클래스를 따로 만듬
*** 5.0에 추가사항 : 2011-08-06
현재까지 정리를하지 않고, 무수히 많은 버전들을 과감히 지워버리거나 통합하여 하나의 화일로 만듬
select : 어떤것을 선택하는것은 write, read도 아니어서 select라는 것을 새로이 만듬
전체적으로 변경을 하여야 하는 부분은
*** 2004년 5월 2일
1. 부분을 통합하는등, 모든 부분에서 함수들의 이름을 변경하거나 통합하는 작업을 함
2. 이름을 통일하는 작업을 함
3. 이번부터는 버전의 개념을 없앰(뭐, 날짜나 버전이나 그게 그건것 같기는 하지만...)
*** 2004년 6월 23일
1. 전체적으로 각 속성의 이름을 변경함
*** 2004년 10월 27일
Pcell 2.0 발표
전체적으로 이름을 손봄
*** 2005년 12월 21일
전체적으로 이름과 내용들을 최신의 것으로 조정하였읍니다
*** 2006년 04월 07일
모든것을 조합해서 하나로 다시 만들었읍니다
기존에 변경하고 추가한것들이 따로 되어잇는것을 약간 수정하고 가감하였읍니다
*** 2009년 06월 20일
전체적으로 한번 더 고침
*** 2011년 03월 08일
몇가지를 변경함
*** 2011-08-18
설정만 하는것은 set이라고 정의한다
같은것을 좀 정리함
*** 2012-02-12
자료를 보완함
*** 2015-06-06
여러 자료들을 통합함
전체적으로 자료들을 조금씩 손보고 있음
새롭게 다시 이름을 작성해 봄
* 2022-09-17
기존의 가로를 x로 했던것을 학교때의 좌표로 변경
- 가로 : y
- 세로 : x
* range는 기본적이라 표시하지 않음
* 2022-10-15 : 전체적으로 변경
pcell에서 x,y의 기준에 대하여
셀을 주로 사용할 때 혼선이 있는 부분중에 하나가 가로와 세로에 대한 정의 입니다. pcell에서는 아래의 정의로 사용함을 알려드립니다영역을 나타내는 부분에 대해서 다시한번 정리하여 드립니다
영역의 의미 | 뜻 | |
[1,1] | 셀 A1한개 | |
[1,2,3,4] | A2 ~ C4까지의 영역 | |
[0,2] | B행 전체 | 0은 전체를 뜻하는 용도 |
[0,2,0,5] | B행 ~ E행까지 전부 | 0은 전체를 뜻하는 용도 |
[1,0,4,0] | 1열 ~ 4열까지 전부 | 0은 전체를 뜻하는 용도 |
[1,0] | 1열 전부 | 0은 전체를 뜻하는 용도 |
함수 이름 규칙
기본룰은 4단어로 이루어진 함수입니다. 대상객체에 대한 설명이 필요해서 영어의 전치사 개념으로 “연결단어”라는 부분을 만들어 보았다함수의 이름규칙
- 함수의 이름은 가능하면 쉽게, 별도로 외우지 않아도 연상이 가능한 방법으로 하려고 하였다. 그래서 3자리로 만들었으며, 어떤 이름은 약간 억지스러운 것도 있으니 이해 바랍니다
- 주소와 영역에 사용되는 것은 x,y로 만들었으며, 이때 x는 가로를 뜻하는 것으로 사용하였다. X축을 뜻하면 가로이지만, x좌표축의 표현 형식으로 보면 y를 나타내야 하지만, 여기서는 여러 고민중, x는 가로를 뜻하도록 하였으니 혼돈이 있으셔도 양해 바랍니다(즉, x를 숫자로 표현할때 x방향에 있는 몇번째로 할것인지 xy좌표계로 할것인지를 고민하였다는 뜻이다)
- 함수의 기본 내용은 외형은 엑셀로 조정을 하고, 내용이 변경되는 부분은 python의 다른 모듈들을 이용하여 사용자가 처리하도록 하였다. 가장 중요한 읽고 쓰는 기능만 있어도, 엑셀의 자동화는 가능하다
- 자주 사용하는 기능은 만들어서 넣었으며
- 차후 값들을 변경하거나 sqlite등을 이용하여 개인적으로 사용하던 database를 별도의 함수나 파일로 만들어 다룰 예정이다
함수의 이름표현방법
- 모두 소문자로 나타낸다
- 언더바로 3단어를 연결한다
- 모든자료는 all을 사용한다
- 함수의 입력변수는 input_list => 리스트형, input_data/text/value => 1개의 자료, input_dic => 사전형
- 1차원리스트는 list1d, 2차원은 list2d
- youtil 모듈에서는 따로 분리하기에는 작은 부분인 것은 맨 앞에 그 분류코드를 먼저 언급한다
Pcell의 모듈을 만들 때 나름대로 편하고 쉽게 이름을 만들려고 하였습니다. 기본적인 틀을 만들어 놓으니, 분명억지로 지어진 이름또한 있음을 시인합니다. 나름대로 생각하고 고심한끝에 만들어진 이름이오니 맘에 들지 않는 부분이 있이더라도 양해를 부탁드립니다
물론, 지금의 이름이 최종이라고는 생각하지 않고 있습니다. 좋은 이름이라는것은 어떤 메소드가 들어가 있는지 잘 몰라도 거의 사용하는데 사람의 생각에서 쉽게 사용을 할수 있도록 만드는 것이라고 생각을 합니다
아마 한 4~5번정오는 크게 이름을 변경한 것 같습니다. 만들어놓고 조금지나면 저스스로가 도데체 이것의 이름은 왜 이렇게 만들어놓은거야???라는 질문을 하는경우가 가끔있습니다. 이리바꾸고 저리바꾸어도 맘에 안드는구석이 아직 많습니다
한사람의 이름이 인생에서 차지하는부분이 많듯이 제가만든것또한 그러하지만, 만약 맘에 안드시는 것이 있으시면 본인스스로가 바꾼어서 사용하셔도 됩니다
단, 기존의것은 그대로 두시고 아래부분에 새로운 메소드를 추가하셔서 위의것을 그대로 사용하시면 될것입니다
그래서 다음과 같은 원리를 이용해서 만들었으나, 조금은 틀린부분도 있지만…
- 이름은 기본적으로 3부분으로 만들었으며 각부분은 언더바(_)로 연결했습니다
- 읽을때는 read, 쓸때는 write, 삭제는 delete, 추가는insert등을 사용하였습니다
- 두번째의 이름의 규칙은
거진 영역을 나타내는 부분으로 사용하였습니다
range, workbook, cell, line, column
- 세번째 부분이 어떤 일을 할것인지를 알아보는 것입니다
- 일반사항은 다음과 같습니다
- 모든함수에는 sheet가 명시되어야 합니다
- 값을 읽는것은 read로 시작하며
- 값을 쓰는 것은 write로 시작합니다
- 선을 긋는등의 그림은 dwg로 시작합니다
- 하나의 자료가 아닌, 자료의 묶음은 Range를 사용한다
- 두개의 문구사이에는 '_' 로 연결을 하였다 예) read_cell
- 메소드는 모두 소문자를 사용함
함수 인자의 사용법
두번째로 함수에 들어가는 인자들에 대해서 언급을 해 봅니다보통 들어갈 함수의 인자는
- 어떤 시트인지
- 어느부분인지
- 어떤값인지
외부적으로 셀하나를 선택하면 [1,1]이지만 혼선을 피하기위하여 모든 셀은 영역으로 표시하여 [1,1,1,1]과 같이 4개의 요소로 적용하였습니다
함수의 입력값인 “”의 의미 | 코딩을 하다보니 생각이상으로 많이 사용하는 것이 현재 활성화된 엑셀화일, 활성화된 시트, 현재 선택된 영역등이었다. 그래서 이것을 activesheet등으로 표시하는 것보다는””으로 하는 것이 이해하기가 쉬워서, 이것을 사용했다 사용하는 위치가 다르기 때문에 혼선이 야기되지는 않았다. 아예 아무것도 넣지 않아도 인식하게 할까라고 생각했는데, 그럴때는 입력값이 여러 개일때 혼선이 발생을 하기 때문에 쓰는 것이 더욱 좋았다 |
주요 함수들에 대한 간단한 설명
쓰기 기능으로 기본적으로 사용하는 것을 아래에 언급하여 놓읍니다기본적으로 아래의 함수들의 이름을 보면 왠많한 것들은 어디에 사용하는지 유추가 가능합니다
아래의것은 읽고, 쓰고, 지우는 가장 기본적인것들을 나열해 보았습니다
거의 대부분의 함수들을 언급하였으며, 실제 사용방법은 별도로 설명하여 드립니다
methods이름 | 간략 설명 | 대표적인 값 |
write_cell_value(보관용) write_value_in_cell |
셀에 값쓰기 | |
write_df_to_excel | Dataframe의 값을 쓰기 | |
write_list1d_in_range | 1차원리스트의 자료를 쓰기 | |
write_list_in_range | 리스트값을 영역에 쓰기 | |
write_memo_in_cell | 셀에 메모값 쓰기 | |
write_nansu_in_range | 영역에 난수값 쓰기 | |
write_value_in_activecell | 현재의 activecell에 값쓰기 | |
write_value_in_range | 영역에 값쓰기 | |
write_value_in_range_as_speedy | 속도를 높여서 한번에 영역에 값쓰기 | |
write_value_in_range_by_range_priority | 값과 영역중에서 영역을 수선으로 값쓰는 것 | |
write_value_in_range_by_trans | 가로와세로를 바꿔서 값쓰기 | |
write_value_in_range_xystep | 값을 몇번째마다 쓰는목적 |
methods이름 | 간략 설명 | 대표적인 값 |
read_address_in_activecell | 현재셀의 주소값 | 주소 |
read_address_in_currentregion | 현재 셀이 있는곳의 값으로 둘러쌓인 영역의 주소 | 주소 |
read_address_rangename | 이름영역의 주소값 | 주소 |
read_address_usedrange | 사용자영역의 주소값 | 주소 |
read_color_in_cell | 현재셀의 색깔 | |
read_coord_in_cell | 현재셀의 좌표크기 | |
read_inputbox_value | Inputbox를 만들어서 값을 읽어오는 것 | |
read_memo_in_cell | 셀의 메모값 | |
read_shape_in_sheet_name_by_no | 시트의 도형을 번호로 갖고오는것 | |
read_cell_value | 현재셀의 값 | 값 |
read_value_in_cell | 현재셀의 값 | 값 |
read_value_in_continous_range | 연속인값 | 값 |
read_value_in_range | 사용자가 지정해준 영역의 값 | 값 |
read_value_in_selection | 선택영역의 값 | 값 |
read_value_in_xxline | 가로행의 값 | 값 |
read_value_in_yyline | 세로열의 값 | 값 |
read_all_property_in_cell | 셀의 모든 값을 읽어옴 | |
read_address_in_activecell | ||
read_value_in_activecell | delete_only_one | |
read_activesheet_name | write_value_in_cell_speed | delete_range_color |
read_cell_address | write_value_in_range_speed | delete_range_line |
read_cell_color | delete_range_linecolor | |
read_cell_memo | write_cell_memo | delete_memo |
read_value_in_cell | write_value_in_cell | delete_cell_value |
read_continousrange_value | delete_rangename | |
read_currentregion_address | delete_rangename_all | |
read_general_value | delete_shape | |
read_inputbox_value | delete_shape_all | |
read_range_address | delete_sheet | |
read_value_in_range | write_value_in_range | delete_range_value |
read_rangename_address | ||
read_rangename_all | delete_xx | |
read_selection_address | ||
read_selection_value | delete_yy | |
read_shape_name | ||
read_sheet_allname | delete_sheet_allvalue | |
read_sheet_count | ||
read_address_usedrange | delete_usedrange_value | |
read_username | ||
read_workbook_fullname | delete_range_link | |
read_workbook_name | ||
read_workbook_path | ||
read_xx_value | delete_xx_value | |
read_yy_value | delete_yy_value |
set_bold_in_range | set_font_in_rangecolor | |
set_cell_color | set_fontsize_in_range | |
set_column_numberproperty | set_range_formula | |
set_formula | set_merge_in_range | |
set_fullscreen | set_range_numberformat | |
set_gridline_off | set_range_unmerge | |
set_gridline_on | set_rangename | |
set_print_page | set_sheet_lock | |
print_preview | set_sheet_unlock | |
set_range_autofilter | set_visible | |
set_autofit_in_range | set_wrap_on | |
set_range_bold | set_x_length | |
set_range_clear | set_x_numberproperty | |
set_font_in_range | set_y_length |
draw_range_color | |
draw_range_line | |
draw_range_rgbcolor | |
draw_range_wellusedline | |
insert_xx | |
insert_yyline_in_range | |
select_range | |
select_sheet | |
select_cell | |
cut_x | |
cut_y | |
add_sheet |
엑셀을 컨트롤 할 수 있는 다른 모듈들
엑셀을 쉽게 사용이 가능하도록 만든 모듈들이 여러가지가 사용되고 있습니다각자 여러분들이 사용이 편하도록 만든 부분이라, 제것을 사용해 보시고 본인에게 맞지 않는다면, 다른 모듈을 사용해 보시기를 권합니다
- openpyxl
- xlwings
- xlrd
- xlwt
win32com으로 엑셀 제어하기
pcell은 기본적으로 win32com과 파이썬을 이용해서 만든것입니다. 그래서 기본적인 사용법을 보여드리면, 아래와 같습니다. 만약 새로운 부분을 만들어보고 싶으신분은 저의 모듈을 기반으로 분석해보시면 그리 어렵지 않게 만들었으니, 본인에게 도움이되는 함수들을 더 쉽게 만드실수가 잇으실 것입니다여기까지 오신분들중에는 제가 만들어놓은 모듈만 갖고는 업무에 부족하신분들도 있으실것이고, 나름대로무엇인가를 만들어 보실분도 있으실 것입니다. 그래서 간략하게나마 pcell을 사용하지 않고 원론적으로 엑셀을 제어하는 부분에 대해서도 간략하게나마 언급을 하여 보도록 합니다.
이부분은 그내용원리가 이렇다는정도로 만들어 드리는것입니다. 이정도의 것을 사용하시려면 VBA를 공부하시면 만들수있으니, 원하시는분은 꼭 이런pcell과 같은 기능이 아니라도 워드, 파워포인트등의 것들을 만들수도있이고 아예, 별도의 좋은기능을 만드실수도 있으실 것입니다.
그럼, 원리를 찾아서 떠나봅니다.
엑셀의 새로운 파일을 만들고 “Sheet1”의 a1에다가 '박상진'이라는 글씨를 넣는 것입니다
#-*- coding: utf-8 -*- import win32com.client ExcelApp=win32com.client.Dispatch("Excel.Application") #ExcelApp에 엑셀객체를 할당한다 ExcelApp.visible = 1 #엑셀이 화면에 나타날 수 있도록 설정한다 workbook = ExcelApp.Workbooks.Add() #새로운 워크북을 추가하고 그것을 workbook변수에 할당한다 workbook.worksheets('Sheet1').Cells(1, 1).value='박상진' #시트이름이 sheet1인것에 ‘박상진’이라는 값을 넣도록한다 |
이것을 조금 발전시켜보자. 자동으로 현재의 경로에 psj.xls로 저장이 되도록 하는 것입니다
#-*- coding: utf-8 -*- import win32com.client ExcelApp=win32com.client.Dispatch("Excel.Application") ExcelApp.visible = 1 workbook = ExcelApp.Workbooks.Add() worksheet=workbook.Worksheets.Add() worksheet.Cells(1, 1).value='박상진' workbook.SaveAs("psj.xls") #ExcelApp.Quit() #이것은 엑셀을 끄는 것입니다, 만약 다른 엑셀파일이 열려져있는 경우는 #저장할것인지를 물어보기는 하지만 조심하십시요del(worksheet) del(workbook) del(ExcelApp) |
아마도 앞의 두개의 강좌와 이번것만 알더라도 귀하께서는 엑셀의 자료를 가공하실수가 있을 것입니다
- 특정경로의 엑셀파일 열기
#-*- coding: utf-8 -*- import win32com.clientExcelApp=win32com.client.Dispatch("Excel.Application") ExcelApp.visible = 1workbook1 = ExcelApp.Workbooks.Open('D:\\test_01.xlsx') |
- 연파일에서 값읽어와서 새로운시트만들고 값복사하기
ExcelApp=win32com.client.Dispatch("Excel.Application")
ExcelApp.visible = 1
workbook = ExcelApp.Workbooks.Open('c:\\test')
worksheet=workbook.worksheets('Sheet1')
var_1 = worksheet.Cells(1, 1).value
new_sheet=workbook.Worksheets.Add()
new_sheet.Cells(1, 1).value = var_1
#-*- coding: utf-8 -*- import win32com.client ExcelApp=win32com.client.Dispatch("Excel.Application") ExcelApp.visible = 1 workbook = ExcelApp.Workbooks.Open('D:\\test_01.xlsx') worksheet=workbook.worksheets('Sheet1') var_1 = worksheet.Cells(1, 1).value new_sheet=workbook.Worksheets.Add() new_sheet.Cells(1, 1).value = var_1 |
|
기본 사용법
먼저 알아볼것이 셀의 값을 읽어오거나 쓰는 부분이 가장 기본이겠지요예를 보여드리면, sheet1의 셀 [1,1]의 값을 읽어오는 방식입니다. 현재의 [1,1]셀에 “test”라는 값을 넣은 후에, 다시 [1,1]의 값을 읽어온 것을 print 해보도록 합니다
# -*- coding: utf-8 -*- from xython import pcellexcel = pcell.pcell() excel.write_value_in_cell("", [1,1], "test") value = excel.read_value_in_cell("", [1,1]) print(value) |
|
전체 0
전체 35
번호 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
공지사항 |
pcell이란 무엇인가 (python + win32com + excel)
sjpark
|
24.08.17
|
추천 0
|
조회 134
|
sjpark | 24.08.17 | 0 | 134 |
공지사항 |
pcell의 기본 사용법
sjpark
|
24.08.17
|
추천 0
|
조회 173
|
sjpark | 24.08.17 | 0 | 173 |
33 |
pcell(기초) – 삭제 - 같은 자료 삭제 – 033
sjpark
|
24.12.07
|
추천 0
|
조회 13
|
sjpark | 24.12.07 | 0 | 13 |
32 |
pcell(기초) – 삭제 - n번마다 삭제
sjpark
|
24.12.06
|
추천 0
|
조회 14
|
sjpark | 24.12.06 | 0 | 14 |
31 |
pcell(기초) – 삭제 - 영역의 값 삭제
sjpark
|
24.12.04
|
추천 0
|
조회 13
|
sjpark | 24.12.04 | 0 | 13 |
30 |
pcell(기초) – 삭제 - 이름영역 삭제
sjpark
|
24.12.04
|
추천 0
|
조회 12
|
sjpark | 24.12.04 | 0 | 12 |
29 |
pcell(기본) - 값의 여러 형태
sjpark
|
24.12.02
|
추천 0
|
조회 16
|
sjpark | 24.12.02 | 0 | 16 |
28 |
pcell(기본) - 날짜에 대한 생각
sjpark
|
24.12.02
|
추천 0
|
조회 15
|
sjpark | 24.12.02 | 0 | 15 |
27 |
pcell 예제 : 각 라인에서 값이 제일 큰 값과 작은 값 에 색칠하기
sjpark
|
24.11.23
|
추천 0
|
조회 28
|
sjpark | 24.11.23 | 0 | 28 |
26 |
pcell 기본 : 파일 경로와 이름 읽어오기
sjpark
|
24.11.18
|
추천 0
|
조회 41
|
sjpark | 24.11.18 | 0 | 41 |
25 |
pcell 기본 : 열린 모든 엑셀파일 이름 읽어오기
sjpark
|
24.11.18
|
추천 0
|
조회 35
|
sjpark | 24.11.18 | 0 | 35 |
24 |
pcell 기본 : 활성화된 시트와 모든 시트이름 읽어오기
sjpark
|
24.11.18
|
추천 0
|
조회 34
|
sjpark | 24.11.18 | 0 | 34 |
23 |
pcell_event : 이벤트 등록으로 특정영역의 값이 바뀌면 statusbar에 그 값을 쓰기
sjpark
|
24.08.25
|
추천 0
|
조회 142
|
sjpark | 24.08.25 | 0 | 142 |
22 |
엑셀자동화 : 새로운 파일 열어, 값 입력후, 저장하고, 종료하기
sjpark
|
24.08.17
|
추천 0
|
조회 111
|
sjpark | 24.08.17 | 0 | 111 |