해결된 질문
작성
·
580
답변 1
1
다행히 한셀의 API 인터페이스는 엑셀과 거의 동일합니다.
기존 엑셀 사용자들에게 익숙한 느낌을 주기 위해
의도적으로 엑셀과 유사하게 인터페이스를 만들었다는 느낌인데요.
(저는 그 점이 마음에 듭니다.)
하여튼 위 영상에서 간단히 사용한 코드는,
import win32com.client as win32
hcell = win32.gencache.EnsureDispatch("HCell.Application")
#%%
hcell.Visible = True
#%%
hcell.Cells(1,1).Value = "Hello World!"
#%%
for i in range(2, 11):
hcell.Cells(i, 1).Value = \
f"Hello {i}!"
#%%
위와 같습니다.
다만 엑셀도 "엑셀프로그램 - 워크북 - 워크시트" 계층이 있듯이
한셀에도 아래와 같이 계층을 짜서 프로그래밍하시는 걸 권장합니다.
import win32com.client as win32
hcell = win32.gencache.EnsureDispatch(
"HCell.Application"
)
#%% Visible 기본값은 False라서 실행해도 숨겨져 있습니다.
hcell.Visible = True
#%% 엑셀과 달리 한셀에서는 실행시점에 워크북 하나가 자동으로 만들어집니다.
wb = hcell.Workbooks(1)
#%% 워크시트도 하나 만들어져 있습니다.
ws = wb.Worksheets(1)
#%% 해당 워크시트의 Cells나 Range 등을 통해 입력하실 수 있습니다.
ws.Cells(1,1).Value = "Hello world!"
#%% 저장이나 닫기는 워크북 계층에서 실행하시면 됩니다.
wb.SaveAs("./hello.cell")
# 기본 저장 폴더 : home/Documents
한셀의 COM API 코드나 파일구조는 엑셀과 굉장히 유사하다는 장점(?)이 있어,
기타 응용프로그램이나 판다스 등에서 불러오는 방법도 엑셀과 동일합니다.
다만 openpyxl이나 xlwings 등의 엑셀 라이브러리를 사용하셔야 한다면
라이브러리 일부를 약간 수정해야 합니다.
대부분의 단순작업은 win32com으로 충분하므로
기존의 방법을 사용해보시는 것을 추천드립니다.
도움이 되었길 바랍니다.
행복한 하루 되세요^^