Win32com 모듈 불러 오기
import win32com.client
Import를 통해서 win32com.client 부분을 불러오시기 바랍니다.
엑셀 연결하고 파일 불러 오기
excel=win32com.client.Dispatch("Excel.Application")
workbook=excel.Workbooks.Open("fileName")
sheet=workbook.Sheets("sheetName")
엑셀에서 데이터 읽어오기 (row(행), column(열)은 숫자로 표시)
read_data=sheet.Cells(row,column).Value
엑셀에 데이터 값 쓰기
sheet.Cells(row,column).Value = "Happy"
엑셀 화면에 표시하기
excel.Visible = True
파일 저장하고 파일 닫기
workbook.Close(savechanges=1)
변경사항 저장하지 않고 파일 닫기
workbook.Close(savechanges=0)
엑셀 종료하기
excel.quit()
예제 코드 :
1. excel 로 저장한 file을 sheet 별로 csv로 저장하기(save_sheets_xls_to_csv)
2. 절대경로 잡기(os.abspath)
3. filename format이 다른 경우 처리 (current_path)
4. excel sheet에 글자쓰기, 읽기
5. 변경사항 파일 저장
import os
import win32com.client
def save_sheets_xls_to_csv(workbook,current_path):
sheets = workbook.Worksheets
for sheet in sheets:
path = current_path + sheet.Name
sheet.SaveAs(Filename=path, FileFormat=6) #CSV file format
if __name__ == "__main__":
excel_name='Excel_Control_by_Python.xlsx'
sheet_name="Sheet1"
save=False
current_path = os.getcwd().replace('\'','\\') + '\\'
#print(current_path)
#workbook=excel.Workbooks.Open(path+excel_name)
excel_path=os.path.abspath(excel_name) #절대 경로 사용
excel=win32com.client.Dispatch("Excel.Application")
workbook=excel.Workbooks.Open(excel_path)
sheet=workbook.Sheets(sheet_name)
excel.Visible = True
sheet.Cells(1, 1).Value = "Generation"
read_data=sheet.Cells(1,1).Value
print(read_data)
save_xls_to_csv(workbook,current_path)
if save:
workbook.Close(SaveChanges=True)
else:
workbook.Close(SaveChanges=False)
excel.quit()
결과 :
<실행전>
<실행후>
fileformat 참조 :
참고 : excel to csv 저장 방법
https://stackoverflow.com/questions/49904045/win32com-save-as-variable-name-in-python-3-6
참고 : 기본 문법 참조
https://appia.tistory.com/94?category=849954
'일 > Python' 카테고리의 다른 글
Python) 학습 - 기본3일차(자료구조: list, tuple, dictionary, set) (1) | 2022.12.21 |
---|---|
Python) 학습 - 기본2일차(if, for, while) (0) | 2022.12.21 |
Python) 학습 - 기본1일차(variable, input, output) (0) | 2022.12.21 |
파이썬(python) - exe 실행파일 만들기 & Error 처리 (0) | 2021.07.09 |
파이썬(python) - 로또 번호 생성기 lotto (random), (date) (0) | 2021.07.07 |