728x90
반응형
openpyxl가 아닌, xlwings을 설치하면 된다.
import openpyxl
wb = openpyxl.load_workbook('파일명')
#sheet 열기
sheet = wb['sheet1']
#workbook 생성
wb = openpyxl.Workbook() # 기본 시트 생성됨 sheet1
sheet2 = wb.create_sheet('sheet2') #마지막에 추가
sheet3 = wb.create_sheet('sheet3', 1) #sheet1 자리에 삽입 하여 추가
#시트 이름 변경
sheet2.title = '업무자동화'
#저장
wb.save('./new_test_file.xlsx')
wb.close()
penpyxl 같은 경우 시트별로 불러와서 작업이 가능하지만,
애초에 회사 사내망 때문에 보안이 걸린 엑셀의 경우는 xlwings로만 불러 올 수 있었다.
저는 xlwings 대신에 pd.read_clipboard()를 사용하였습니다. 이게 참 훌륭한 기능이라는 걸 깨달았네요. 그냥 가져오고자 하는 데이터를 드래그해서 복사하시면 dataframe이 만들어집니다. 자동으로 행, 열도 생성되고 이거 아니었으면 자동화는 힘들었을거 같네요 .
그리고 이걸로 긁어와서 만든 파일의 경우 세션(?)이 끊기기 전까지는 csv로 불러서 읽을 수 있습니다! 다만 csv 파일을 열어서 수정을 하게 되면 다시 못 쓴다는 치명적인 단점이... 그래도 수작업을 할 시간에 코드로 자동화를 한다면 훨씬 더 편하니까 이렇게 삥삥 돌아서 갑니다.
출처 : https://0goodmorning.tistory.com/71 / https://maeng-gun.github.io/excel/excel1/
728x90
반응형
'📌 Back End > └ Python' 카테고리의 다른 글
[Python] 파이썬 0x80070643 에러 현상 해결 방법 (2) | 2024.08.12 |
---|---|
[Python] Xlwings - 파이썬으로 excel 파일 다루기 (0) | 2023.04.23 |
[Python] Pandas Dataframe - 데이터프레임(엑셀 데이터) HTML 테이블 태그로 변환하기 (Flask DataFrame to html table) (1) | 2023.04.23 |