본문 바로가기

프로그래밍/엑셀(Excel)24

Openpyxl을 이용하여 엑셀(Excel) 셀 안에 이미지(Image) 삽입하기 파이썬(Python)을 이용하면 엑셀 파일에서 셀 안에 이미지를 삽입할 수 있다. Openpyxl을 사용하면 가능한데 이번 포스팅에서는 Openpyxl을 이용하여 엑셀(Excel) 셀 안에 이미지(Image)를 삽입하는 방법을 알아본다. 셀 안에 이미지(Image) 삽입하기 1) 한 개 이미지 삽입 우선 한 개 이미지 삽입하는 방법을 알아보자. 방법은 간단하다. 이미지를 삽입하고 이미지 픽셀을 엑셀(Excel)의 셀 사이즈 단위로 변환하여 그에 맞게 셀 폭과 높이를 변경하면 된다. 아래 코드는 하나의 이미지를 삽입하는 작업을 수행한다. 이때 이미지 사이즈는 픽셀 단위로 500X281이다. 여기서 핵심은 바로 get_col_width_row_height 함수인데 이 함수가 이미지 사이즈를 픽셀 단위에서 엑.. 2023. 1. 14.
[XlsxWriter] 셀 안에 데이터 막대(Data Bar) 그리기 (feat. conditional_format) 이번 포스팅에서는 XlsxWriter를 이용하여 Excel(엑셀)에서 숫자형 데이터를 갖는 칼럼에 대하여 데이터 막대(Data Bar)를 삽입하는 방법을 알아보자. 셀 안에 데이터 막대(Data Bar) 그리기 (feat. conditional_format) 데이터 막대는 conditional_format 메서드를 이용하여 그릴 수 있다. conditional_format은 첫 번째 인자로 데이터 막대가 그려질 범위를 설정하고 데이터 막대 설정 옵션을 딕셔너리로 만들어 두 번째 인자로 전달한다. 코드를 통해 사용법을 알아보자. 아래 코드는 엑셀에서 Profit 칼럼과 Units 칼럼 데이터에 막대를 삽입한다. from xlsxwriter import Workbook ## data 생성 data = [ [.. 2022. 11. 15.
[XlsxWriter] 데이터 필터(Auto Filter) 적용하기 (feat. autofilter, filter_column) 이번 포스팅에서는 XlsxWriter를 이용하여 엑셀(Excel)에서 데이터 필터를 적용하는 방법에 대해서 알아보고자 한다. 데이터 필터(Auto Filter) 적용하기 (feat. autofilter, filter_column) 데이터 필터를 적용하는 과정은 아래와 같은 3단계로 이루어진다. 1) 필터 생성, 2) 필터 조건 정의, 3) 조건 만족 안 하는 행 숨김 필터 생성은 첫 번째 행의 아래 그림과 같은 화살표 박스를 생성해주는 것이고 필터 정의는 체크 박스에 체크 또는 사용자 지정 필터를 만들어 주는 것이다. 하지만 XlsxWriter 문서에 따르면 이렇게 필터를 만들었다고 해서 실제로 필터를 적용하여 행을 추출할 수는 없다고 한다. 따라서 필터가 적용된 것처럼 만들기 위하여 조건을 만족하지 않.. 2022. 11. 15.
[XlsxWriter] 열(Column) 폭 문자에 맞게 조절하기 (feat. set_column) 이번 포스팅에서는 엑셀(Excel)에서 셀 안에 텍스트 폭에 맞게 칼럼 폭을 조절하는 방법을 알아보려고 한다. XlsxWriter 파이썬(Python) 모듈에서는 문자에 맞게 자동으로 열 폭을 맞춰주지 않는다. 따라서 수동으로 조절해줘야 하는데 set_column을 이용하면 자동으로 열 폭을 맞춰준 것과 비슷한 효과를 낼 수 있다. 열(Column) 폭 문자에 맞게 조절하기 (feat. set_column) 나 같은 경우 영어 소문자, 대문자, 숫자, 한국어 그리고 나머지 총 5가지 카테고리별로 한 글자당 폭 수를 실험을 통하여 결정했다. 먼저 칼럼 폭을 조절하지 않을 경우 다음과 같이 텍스트가 길면 짤리는 것을 알 수 있다. 자 이제 아래 코드를 통해 칼럼을 예쁘게 조절해보자. 이때 수평으로 가운데 정.. 2022. 11. 11.
[XlsxWriter] 행 높이와 열 폭 조절하기(feat. set_row, set_column) 이번 포스팅에서는 엑셀(Excel)에서 행 높이와 열 폭을 조절하는 방법을 알아보고자 한다. XlsxWriter 파이썬(Python) 모듈에서는 set_row와 set_column을 이용하여 각각 행 높이와 열 폭을 조절할 수 있다. 행 높이와 열 폭 조절하기(feat. set_row, set_column) 방법은 쉽다. 행 높이는 set_row, 열 폭은 set_column을 이용하면 된다. 이때 set_column은 열의 범위를 설정하여 일괄적으로 폭을 설정할 수 있지만 행은 하나의 행만 높이를 설정할 수 있다. 아래 코드를 통해 사용법을 알 수 있다. 설명은 주석을 참고하자. from xlsxwriter import Workbook wb = Workbook('row_col.xlsx') ws = wb.. 2022. 11. 11.
[XlsxWriter] 셀 포맷(Cell Format - 폰트, 숫자 형식, 숨기기, 정렬, 배경색, 테두리) 변경하기 (feat. add_format) XlsxWriter 파이썬(Python) 모듈은 add_format 메서드를 이용하여 엑셀(Excel)의 구성요소인 셀(Cell) 안에 입력되는 텍스트 폰트, 숫자 형식, 셀 공식 숨기기, 정렬, 배경색 그리고 테두리와 같은 셀 포맷을 변경할 수 있다. 이번 포스팅에서는 add_format을 이용하여 셀 포맷을 설정하는 방법을 알아보자. - 목차 - 1. 셀 폰트 설정 2. 셀 숫자 형식 3. 정렬하기 4. 배경색, 전경색 설정하기 5. 테두리 그리기 1. 셀 폰트 설정 XlsxWriter에서 제공하는 셀 폰트 설정 기능은 다음과 같다. 이제 코드를 보면서 기능을 파악해보자. 셀 폰트는 셀 포맷의 일부이다. 이때 셀 포맷은 딕셔너리를 이용하는 방법과 set 메서드를 이용하는 방법이 있다. 셀 포맷은 기본.. 2022. 11. 11.
[XlsxWriter] 행, 열 고정하기 (feat. freeze_panes) XlsxWriter 파이썬(Python) 모듈에서는 freeze_panes를 이용하여 엑셀의(Excel) 특정 행과 특정 열을 고정시킬 수 있다. 고정시킨다는 것은 스크롤로 이동해도 그 행과 열은 고정되어 계속 화면에 보인다는 것이다. 이번 포스팅에서는 XlsxWriter에서 freeze_panes 사용법을 알아보려고 한다. freeze_panes 사용법 XlsxWriter에서 freeze_panes는 Worksheet 클래스 내부 메서드로 고정시킬 행과 열 번호를 인자로 넘겨주면 된다. freeze_panes 사용법은 다음과 같다. freeze_panes( '행 번호', '열 번호' ) 이때 각 번호는 0 또는 양의 정수를 넣어줘야 하며 0은 행 또는 열을 고정시키지 않겠다는 뜻이고 2는 두 번째 행 .. 2022. 11. 7.
[XlsxWriter] 엑셀 파일 생성하기(feat. Workbook) OpenPyXL 포스팅을 마무리하고 이제 XlsxWriter 모듈 사용법에 대해서 포스팅해보려고 한다. 첫 스타트로 XlsxWriter에서 엑셀 파일을 생성하는 방법에 대해서 알아보고자 한다. 엑셀 파일 생성하기(feat. Workbook) 엑셀 파일을 생성한다는 것은 워크 시트를 생성하고 워크 시트의 집합인 워크 북을 생성한다는 것을 의미한다. 아래 코드는 워크 북과 워크 시트를 생성한 뒤 샘플 데이터를 칼럼과 행 인덱스에 대응하는 셀에 값을 삽입한다. from xlsxwriter import Workbook workbook = Workbook('test01.xlsx') ## 워크 북 생성 worksheet = workbook.add_worksheet(name='Test_Sheet') ## 워크 시트 .. 2022. 10. 29.
[XlsxWriter] XlsxWriter 모듈에 대해서 알아보자(vs OpenPyXL) 이번 포스팅에서는 XlsxWriter 모듈에 대한 내용을 간략하게 알아보고자 한다. 또한 XlsxWriter과 OpenPyXL을 사용하면서 느낀 차이점도 적어보겠다. XlsxWriter 모듈 1) XlsxWriter 모듈이란? XlsxWriter는 파이썬(Python)에서 엑셀 시트에 데이터를 쓰고 엑셀 파일로 저장할 수 있는 모듈이다. 2) 장단점 - 장점 - a. 엑셀 관련 다른 모듈보다 지원하는 기능들이 많다. b. 사용법에 관련된 내용이 매우 잘 정리되어 있다(이게 가장 크다). c. XlsxWriter는 빠르고 큰 파일을 생성할때 마저도 메모리 사용량이 적다. - 단점 - a. 기존 엑셀 파일을 읽을 수도, 수정할 수도 없다(치명적 단점이다). 3) OpenPyXL과의 비교 사실 XlsxWrit.. 2022. 10. 29.
[OpenPyXL] 차트 그리기 - (6) Area Chart 이번 포스팅에서는 openpyxl을 이용하여 Area Chart를 정의하고 엑셀에 삽입하는 방법을 살펴본다. Area Chart - 목차 - 1. 2d Area Chart 2. 3d Area Chart 3. Area Chart Style 1. 2d Area Chart openpyxl에서는 2d Area Chart를 그리기 위한 AreaChart 클래스를 제공하고 있다. 아래 코드는 AreaChart를 이용하여 2d Area Chart를 정의하고 엑셀 시트에 삽입한다. from openpyxl import Workbook from openpyxl.chart import AreaChart, Reference wb = Workbook() ws = wb.active ## 데이터 생성 rows = [ ['Numb.. 2022. 10. 29.

맨 위로