반응형
Python 을 사용해서 여러개의 파일에 있는 내용들을 모으는 프로그램이다.
회사에서는 pandas 사용이 자유롭지 않아서, win32com 이라는 패키지를 사용했는데,
윈도우에서의 응용 프로그램을 실행하는 패키지인것 같다.
파이참에서 win32com 을 설치하기 위해서는
Ctrl + Alt + S 를 눌러서 Setting 으로 들어간다.
들어가서, Project > Python Interpreter 로 들어가면 설치된 패키지들이 보인다.
여기서 + 버튼을 누른다.
여기서 pywin32 를 검색하고 Install Package 를 눌러서 설치하면
import win32com.client 를 사용할 수 있게 된다.
아래 예제는 D:\ 에 있는
datafile1.xlsx, datafile2.xlsx, datafile3.xlsx, datafile4.xlsx, datafile5.xlsx 의
각 Sheet1을 새로운 파일에 복사해서 모으려고 한다.
import win32com.client
excel = win32com.client.Dispatch('Excel.Application')
excel.Visible = False
excel.DisplayAlerts = False
allDataWB = excel.Workbooks.Add()
numOfData = 5
for i in range(1, numOfData + 1):
path = "D:/datafile" + str(i) + ".xlsx"
print(path)
workbook = excel.Workbooks.Open(path)
sheet = workbook.WorkSheets("Sheet1")
sheet.Copy(Before = allDataWB.Worksheets(1))
allDataWB.Worksheets("Sheet1 (2)").Name = "datafile" + str(i)
workbook.Close(True)
allDataWB.SaveAs(r"D:/all.xlsx")
allDataWB.Close(True)
excel.Quit()
처음으로 만든 프로그램이라 무식하게 구현했지만, 잘돌아간다. ㅋㅋㅋ
all.xlsx 라는 프로그램에 datafile1~5 까지의 Sheet 로 모아놓았다.
나중에 파일의 개수가 많아지면 numOfData 만 수정하고
파일명과 시트명을 잘 설정해두면 잘 돌아갈 것으로 보인다.
반응형
'python' 카테고리의 다른 글
[python][pyautogui] 자동화의 기본 pyautogui 기초명령어 (0) | 2023.01.13 |
---|---|
[python][win32com] 여러 엑셀 파일 자료를 한 시트로 모으기 (0) | 2023.01.03 |
오프라인에서 python package 설치하기 (0) | 2021.10.25 |
[PYTHON] Listnode 생성, 추가, 조작 (leetnode: Add Two Numbers) (0) | 2021.04.05 |
[PYTHON] string 을 list 로 사용하는법, max(string) 사용법 (leetcode: Partitioning Into Minimum Number Of Deci-Binary Numbers) (0) | 2021.04.02 |
댓글