반응형
이전글에서 python 의 win32com 패키지를 사용해서
여러파일에 있는 sheet 를 한개의 파일로 복사해서 붙혀오는 작업을 했다.
이번에는 여러파일에 있는 자료들을 새로운 파일의 새로운 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 |
댓글