반응형
이전글에서 python 의 win32com 패키지를 사용해서
여러파일에 있는 sheet 를 한개의 파일로 복사해서 붙혀오는 작업을 했다.
Python, 파이참에서 win32com 설치, 여러파일에서 시트 복사해서 하나로 모으기
Python 을 사용해서 여러개의 파일에 있는 내용들을 모으는 프로그램이다. 회사에서는 pandas 사용이 자유롭지 않아서, win32com 이라는 패키지를 사용했는데, 윈도우에서의 응용 프로그램을 실행하
manakim.tistory.com
이번에는 여러파일에 있는 자료들을 새로운 파일의 새로운 1개의 시트에 모아보도록 하자.
import win32com.client
excel = win32com.client.Dispatch('Excel.Application')
excel.Visible = False
excel.DisplayAlerts = False
allDataWB = excel.Workbooks.Add()
allDataWS = allDataWB.Worksheets("Sheet1")
allDataWS.Name = "newdata"
all_i = 1
all_j = 1
for k in range(1, 6):
path = "D:/datafile" + str(k) + ".xlsx"
workbook = excel.Workbooks.Open(path)
sheet = workbook.WorkSheets("Sheet1")
print(path)
for i in range(1, 12):
for j in range(1, 12):
allDataWS.Cells(all_i, all_j).Value = sheet.Cells(i, j).Value
all_j = all_j + 1
all_i = all_i + 1
all_j = 1
allDataWB.SaveAs(r"D:/bb/all.xlsx")
allDataWB.Close(True)
excel.Quit()
datafile1~5 의 각 sheet1 에 11x11 개의 자료가 들어있는 상황이다.
for문을 3번 돌린게 마음에 걸리기는 하지만, 일단은 잘 돌아간다. ㅋㅋ
k 는 파일명을 구분, i 는 각 파일의 행, j 는 각파일의 열을 구분한다.
Cells() 함수를 써서 11x11 자료를 하나하나 복사해서 가져왔다.
반응형
'python' 카테고리의 다른 글
[python] for문 index 주의할 점 (0) | 2023.01.14 |
---|---|
[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 |
댓글