openpyxl 설치
<pip를 통한 설치>
pip는 파이썬 패키지를 간편하게 설치해 주는 도구라고 하네요.
1. pip 설치, 업그레이드
시작 - cmd 화면에 들어가서, 아래 명령어를 입력합니다.
sudo apt-get install python-pip
위의 명령이 먹히지 않는다면, 아래의 명령어를 입력해줍시다.
pip install --upgrade pip
2. pip로 openpyxl 패키지 설치
pip install openpyxl
3. 설치 확인
파이썬을 열고, import openpyxl을 쳐보자.
에러가 나지 않는다면, openpyxl의 설치가 완료된 것이다!
--------------------------------------------------------------------
여러 엑셀 파일들을 참조하여 정리된 자료를 새 엑셀에 저장하고 싶었다.
문제가 생겼다. 마지막 자료만 저장되고, 앞의 자료들은 하나도 저장되지 않았다.
[문제의 코드 간략화]
accumulate_sum=0
for repeat in range(0, len(file_list)):
import openpyxl
excel_file = openpyxl.Workbook()
excel_file.remove(excel_file.active)
for i in range(0, len(name)):
sheet.cell(row = 2+i+accumulate_sum, column = 1).value = name[i] # 자료를 엑셀에 입력한다.
accumulate_sum += len(name)
excel_file.save(path2 + '[분석] '+ year + ' AUBL.xlsx')
excel_file.close()
내가 원하는 것 - append(앞의 자료를 유지한 채 현재의 자료를 저장)
실제 코드로 이루어진 것 - save(앞의 자료를 다 날리고 최근 자료만 저장)
처음엔 sheet.cell이 문제라고 생각하여, sheet.cell.append, sheet.append, sheet.append.cell 등을 시도해보았으나,
모두 문법적으로 맞지 않는 코드라며 거절당했다.
몇 시간동안 고민 끝에 문제를 해결할 수 있었다.
내가 생각하는 문제의 이유 :
- 첫 번째 for문 안에서 openpyxl을 반복적으로 열고 있다.
- excel_file.remove(excel_file.active)로 활성화된 파일을 계속 지우고 있다.
- 엑셀 파일을 반복적으로 저장하고 끄고 있다.
[문제가 해결된 코드]
- for문 안에서 import openpyxl을 선언하지 않고, for문에 들어가기 전에 선언한다.
- 엑셀 파일은 for문이 종료된 후에 종료시킨다.
import openpyxl
excel_file = openpyxl.Workbook()
excel_file.remove(excel_file.active)
accumulate_sum=0
for repeat in range(0, len(file_list)):
for i in range(0, len(name)):
sheet.cell(row = 2+i+accumulate_sum, column = 1).value = name[i] # 자료를 엑셀에 입력한다.
accumulate_sum += len(name)
excel_file.save(path2 + '[분석] '+ year + ' AUBL.xlsx')
excel_file.close()
나와 같은 문제로 방황하던 누군가에게 도움이 됐길 바란다.
참고 사이트
openpyxl 설치
[Python] 파이썬에서 엑셀 다루기 1. openpyxl 설치
안녕하세요. 파이썬으로 엑셀 문서를 작성하는 방법을 알게되어 정리해보겠습니다. 파이썬으로 엑셀을 다룰 수 있는 여러 패키지가 있지만, 저는 openpyxl을 사용하였습니다. openpyxl을 사용하면 ��
harryp.tistory.com
'프로그래밍' 카테고리의 다른 글
백준 sys.stdin.readline 런타임 에러 (TypeError) (0) | 2022.11.16 |
---|---|
[C] 반복문에서 scanf로 char형 변수를 입력받을 때, 이상한 값' \n'이 들어가는 문제 해결 (0) | 2020.09.25 |
(Python) TypeError: can only concatenate str (not "int") to str (0) | 2020.09.04 |
파이썬, pip, beautifulsoup4, pandas, openpyxl 설치 일기 (0) | 2020.08.05 |