본문 바로가기

코딩/파이썬과 엑셀

(27)
[Python] openpyxl로 엑셀 파일 다루기 010. 셀 범위 지정으로 셀 값 읽고 쓰기 2 - 열 기준 모든 셀 얻기 ▶ 셀 범위 지정으로 셀 값 읽고 쓰기 2 -열 기준 모든 셀 얻기 셀의 범위를 지정할 때 열 또는 행을 기준으로 모든 셀을 얻을 수 있다. 열을 기준으로 한다는 것은 아래의 그림 예에서 처럼 B~D 열의 모든 셀을 얻는다는 의미이고, 행을 기준으로 한다는 것은 아래의 그림 예에서 처럼 2~4 행의 모든 셀을 얻는다는 의미이다. 단, 반환되는 열 또는 행의 마지막 셀은 worksheet 기준 어느 위치에 셀의 값이 저장되어 있는지에 따라 다르다. ▶ 열을 기준으로 셀 얻기 열을 기준으로 셀의 범위를 지정하고자 한다면 다음의 코드에서 처럼 숫자를 제외한 원하는 열에 해당하는 알파벳을 사용하면 된다. cells_col = worksheet['B:D'] cells_col 변수의 데이터 타입은 tuple로, t..
[Python] openpyxl로 엑셀 파일 다루기 009. 셀 범위 지정으로 셀 값 읽고 쓰기 (range of cells) ▶ 셀 범위 지정으로 셀 값 읽고 쓰기 (range of cells) 셀의 값을 읽거나 쓸 때 그룹 단위로 수행하면 작성하는 코드는 좀 더 간결해 질 수 있다. 셀의 범위를 지정하여 그룹 단위로 값을 읽고 쓰는 방법을 설명하기에 앞서 openpyxl의 docs 문서에 기술되어 있는 아래의 내용을 숙지할 필요가 있다. When a worksheet is created in memory, it contains no cells. They are created when first accessed. 임의의 worksheet를 만들었다고 해서 worksheet 내 셀도 자동으로 만들어 지는 것은 아니다로 정리할 수 있겠다. ▶ 알파벳, 숫자 및 슬라이싱을 이용한 셀 범위 지정 알파벳, 숫자 및 슬라이싱을 이용해 셀..
[Python] openpyxl로 엑셀 파일 다루기 008. Cell(셀)에 값 읽고 쓰기 ▶ Cell(셀)에 값 읽고 쓰기 ▶ Cell에 값 쓰기 Worksheet 내 원하는 위치의 셀에 값을 쓰는 방법은 여러가지가 있다. Worksheet 객체에 대하여 키로써 셀 위치를 지정한 후 값을 대입하는 방법 Worksheet 객체에 대하여 키로써 셀 위치를 지정한 후 Cell 프라퍼티 value를 사용하는 방법 Worksheet 객체에 대하여 키로써 셀 객체를 얻은 후 Cell 프라퍼티 value를 사용하는 방법 Worhseet 클래스의 cell 메서드를 사용하는 방법 위에서 설명한 원하는 위치의 셀에 값을 쓰는 방법에 대한 코드 예는 아래와 같다. # python 3.9.5 # openpyxl 3.0.7 from openpyxl import Workbook workbook = Workbook()..
[Python] openpyxl로 엑셀 파일 처리 007. Worksheet(시트)의 탭 색상 설정 ▶ Worksheet(시트)의 탭 색상 설정 openpyxl로도 Worksheet(시트)의 탭 색상을 설정할 수 있다. ▶ Worksheet.sheet_properties.tabColor 속성 사용 Worksheet 클래스의 sheet_properties.tabColor 속성을 사용하면 Worksheet의 탭 색상을 설정할 수 있다. 아래의 코드에서 처럼 Worksheet 객체인 worksheet의 sheet_properties.tabColor 속성에 문자열 'FFFF00'을 대입하면, 첫번째 시트 탭의 색상이 노란색으로 변경된다. sheet_properties.tabColor 속성에 대입하는 문자열은 RGB (빛의 삼원색인 Red, Green, Blue)를 의미하는 16진수 값이다. 따라서 sheet_..
[Python] openpyxl로 엑셀 파일 처리 006. write-only 모드의 Workbook과 Workbook.close 메서드의 영향성 ▶ write-only 모드의 Workbook Workbook 클래스의 close 메서드는 열려 있는 Workbook 파일을 닫을 때 사용한다고 설명되어 있다. 단, 이때 Workbook은 'read-only' 또는 'wirte-only' 모드여야 함을 전제한다. ▶ write-only 모드의 Workbook에서 메서드 create_sheet의 사용 논리적으로 마지막 코드에 Workbook.close 메서드를 사용해 생성한 Workbook을 닫아줘야 할 것 같은 아래의 코드도 Workbook.close 메서드를 사용하든 하지 않든 엑셀 파일 'sample.xlsx'는 정상적으로 생성된다. # python 3.9.5 # openpyxl 3.0.7 from openpyxl import Workbook wor..
[Python] openpyxl로 엑셀 파일 처리 005. Workbook의 시트 객체 리스트를 얻는 두 가지 방법 ▶ Workbook의 시트 객체 리스트를 얻는 두 가지 방법 Workbook 내에 정의되어 있는 시트(worksheet) 객체에 대한 리스트를 얻는 방법에 대하여 설명한다. Workbook.worksheets 속성 Workbook 클래스의 속성 worksheets는 Workbook 내에 정의되어 있는 Worksheet 객체 정보에 대한 리스트이다. 따라서 속성 worksheets의 타입을 확인하면 list가 출력된다. # python 3.9.5 # openpyxl 3.0.7 from openpyxl import load_workbook workbook = load_workbook('sample.xlsx') print(type(workbook.worksheets)) print('Workbook.worksh..
[Python] openpyxl로 엑셀 파일 처리 004. load_workbook 함수로 엑셀 파일 불러오기 ▶ load_workbook 함수로 엑셀 파일 불러오기 함수 load_workbook을 이용하면 저장되어 있는 엑셀 파일을 불러와 원하는 처리를 진행할 수 있다. 함수 load_workbook은 openpyxl.reader.excel 모듈 내에 정의되어 있다. openpyxl.reader.excel.load_workbook(filename, read_only=False, keep_vba=False, data_only=False, keep_links=True) 참고로 load_workbook이 소문자 'l'로 시작하는 이유는 Workbook 클래스와는 다르게 함수이기 때문이라 생각된다. load_workbook( ) 함수 load_workbook은 파일의 경로를 입력받고, Workbook 객체를 반환한다...
[Python] openpyxl로 엑셀 파일 처리 003. 시트 복사(worksheet copy) ▶ 시트 복사 (worksheet copy) Workbook의 메서드인 copy_worksheet를 이용하면 임의 시트에 대한 복사본을 만들 수 있다. Workbook은 openpyxl.workbook.workbook 모듈 내에 정의되어 있는 클래스이다. class openpyxl.workbook.workbook.Workbook(write_only=False, iso_dates=False) Workbook.copy_worksheet( ) 메서드 copy_worksheet는 Worksheet 객체를 입력받는다. 그리고 복사된 Worksheet 객체를 반환한다. 아래의 코드를 실행한 후 엑셀 파일 'sample.xlsx'를 열어 보면, # python 3.9.5 # openpyxl 3.0.7 from ope..