pyexcel 1.0 documentation

Contents:

This Page

my_package package

Submodules

my_package.pandastool module

pandas.dataframe를 기능을 편리하게 다루기 위한 라이브러리

※ 본 문서는 Google Style Python docstring 으로 작성됨

Example

import pandastool.py

0,8번 열을 선택하여 가져오기 select_data_from_df(df, column_list=[0,8])

1,5번 열을 선택하여 가져오기 select_data_from_df(df, row_list=[1,5])

1~5번 행과 0~5번 열 데이터 select_range_data_from_df(df, 1,5,0,5)

5~끝번 행과 4~끝번 열 데이터 select_range_data_from_df(df, 5,None,4,None)

3번째 열부터 시작하는 0,8번 열 가져오기 datas = select_range_data_from_df(select_data_from_df(df, column_list=[0,8]), start_row=3).values

출력하려면 datas를 이중 for문으로 출력해야 함

my_package.pandastool.select_data_from_df(df, row_list=None, column_list=None)

row, column 지정하여 DataFrame 가져오기

Parameters
  • df (pandas.DataFrame) – 하나의 DataFrame 객체

  • row_list (list) – 가져올 행 번호 목록

  • column_list (list) – 가져올 열 번호 목록

Returns

선택된 행,열만 포함한 DataFrame 객체

Return type

df (pandas.DataFrame)

my_package.pandastool.select_range_data_from_df(df, start_row=0, end_row=None, start_col=0, end_col=None)

row, column의 시작 끝 범위 지정하여 DataFrame 가져오기

Parameters
  • df (pandas.DataFrame) – 하나의 DataFrame 객체

  • start_row (int) – 시작 행 번호

  • end_row (int) – 끝 행 번호

  • start_col (int) – 시작 열 번호

  • end_col (int) – 끝 열 번호

Returns

선택된 범위의 행,열만 포함한 DataFrame 객체

Return type

df (pandas.DataFrame)

my_package.pandastool.show_dataframe_info(df)

하나의 DataFrame 정보 요약하여 출력

Parameters

df (pandas.DataFrame) – 하나의 DataFrame 객체

my_package.pandastool.show_pandas_option()

pandas option값 출력하기

my_package.pyexceltool module

python으로 직접 excel을 읽어오는 라이브러리

※ 본 문서는 Google Style Python docstring 으로 작성됨

자료 구조 openpyxl.Workbook == 실제 Excle 파일 1개 - openpyxl.Workbook.Worksheet == 실제 Excle 파일 내부 시트 (pandas.DataFrame으로 상호 변환가능)

아래의 기능을 제공한다. 새 openpyxl.Excel.Workbook 생성 기존 Excel 파일의 Workbook 읽어오기 Workbook에서 지정한 WorkSheet를 Dict(sheet_name:pandas.DataFrame) 으로 반환 DataFrame을 Excel 파일에 저장

Note

본 스크립트는 f-string을 사용하므로 Python 3.6 version 이상 사용 가능하다. excel을 다루는 함수는 openpyxl 라이브러리를 기반으로 한다. 보안 프로그램으로 인해 excel 파일 로드가 불가한 경우 pywinexceltool.py를 사용하라. 만약 문제가 생길 시 Ctrl+Shift+Esc 로 작업관리자 실행하여 Excel 프로세스를 수동으로 중단시켜라.

Example

import pyexceltool.py

새 openpyxl.Excel.Workbook 생성 workbook = create_new_workbook(sheet_name=[“Sheet1”, “Sheet2”])

기존 Excel 파일의 Workbook 읽어오기 workbook = load_workbook_with_path(load_file_path)

Workbook에서 지정한 WorkSheet를 Dict(sheet_name:pandas.DataFrame) 으로 반환 df_dict = convert_worksheet_to_df(workbook, sheet_name=[“Sheet1”,”Sheet2”], include_index=False, include_column=False) DataFrame을 건드리는 작업은 pandastool.py를 가져와서 사용하도록 하자.

DataFrame을 Excel 파일에 저장 save_df_to_excel(df_dict, workbook, sheet_name=”Sheet”, file_path=save_file_path, include_index=False, include_column=False)

my_package.pyexceltool.convert_worksheet_to_df(workbook, sheet_name=['Sheet'], include_index=False, include_column=False)

Excel 파일에서 원하는 Sheet를 지정해 list(Dataframe) 으로 반환

Parameters
  • file_path (str) – 저장할 대상 Excel Workbook

  • sheet_name (list) – Excel Workbook의 Sheet명

  • include_index (bool, optional) – index 포함여부

  • include_column (bool, optional) – column(header) 포함여부

Returns

pandas.DataFrame)

Return type

dict (sheet_name

Raises
  • ValueError – File path를 입력하지 않은 경우

  • FileNotFoundError – File path의 경로에 파일 찾을 수 없는 경우

my_package.pyexceltool.create_new_workbook(sheet_name=['Sheet'])

새로운 Excel 객체를 생성하여 반환

Parameters

sheet_name (list) – 생성할 시트명

Returns

openpyxl.Workbook

my_package.pyexceltool.load_workbook_with_path(file_path)

기존 Excel 파일의 Workbook을 가져옴

Parameters

file_path (str) – 불러올 파일의 경로

Returns

openpyxl.Workbook

Raises
  • ValueError – File path를 입력하지 않은 경우

  • FileNotFoundError – File path의 경로에 파일 찾을 수 없는 경우

  • PermissionError – File path의 파일이 이미 열려있는 경우

my_package.pyexceltool.save_df_to_excel(df_dict, workbook, sheet_name=['Sheet'], file_path=None, include_index=False, include_column=False)

DataFrame를 Excel sheet에 저장

Parameters
  • df_dict (dict, optional) – key:pandas.DataFrame

  • workbook (openpyxl.Workbook, optional) – 저장할 Excel Workbook 객체

  • sheet_name (str, optional) – 저장할 Excel Workbook sheet 이름

  • file_path (str, optional) – 저장 위치 (C:Users...), 입력하지 않을 시 Default로 들어감.

  • include_index (bool, optional) – index 포함여부

  • include_column (bool, optional) – column(header) 포함여부

my_package.pyexceltool.save_excel(workbook, file_path=None, include_index=False, include_column=False)

Excel 파일을 file_path에 저장

Parameters
  • workbook (openpyxl.Workbook, optional) – 저장할 Excel Workbook 객체

  • file_path (str, optional) – 저장 위치 (C:Users...), 입력하지 않을 시 Default로 들어감.

  • include_index (bool, optional) – index 포함여부

  • include_column (bool, optional) – column(header) 포함여부

my_package.pyexceltool.show_worksheet_list(workbook)

Workbook의 sheet 목록 조회

Parameters

workbook (openpyxl.workbook) – Workbook 객체

my_package.pywinexceltool module

보안 상의 문제로 python으로 excel을 직접 읽을 수 없는 경우 pywin32를 사용하여 우회하는 방식으로 excel을 읽어오는 라이브러리

※ 본 문서는 Google Style Python docstring 으로 작성됨

자료 구조 Excel 는 코드 상의 Excel 객체 Excel.Workbook 는 실제 Excle 파일 1개 Excel.Workbook.Worksheet 는 실제 Excle 파일 내부 시트 (pandas.DataFrame으로 상호 변환가능)

아래의 기능을 제공한다. 새 win32.Excel 객체 생성 새 win32.Excel.Workbook 생성 기존 Excel 파일의 Workbook 읽어오기 Workbook에서 지정한 WorkSheet를 Dict(sheet_name:pandas.DataFrame) 으로 반환 DataFrame을 Excel 파일에 저장

Note

본 스크립트는 f-string을 사용하므로 Python 3.6 version 이상 사용 가능하다. 반드시 생성한 Excel 객체는 excel.Quit()로 닫아주어야 한다. 만약 문제가 생길 시 Ctrl+Shift+Esc 로 작업관리자 실행하여 Excel 프로세스를 수동으로 중단시켜라.

Todo

사전에 pywin32 라이브러리를 설치해야 한다. pip install pywin32 pip install pypiwin32 위 커맨드로 설치 실패 시 https://pypi.org/project/pywin32/#files 접속해서 자신의 python 버전에 맞는버전으로 다운로드 후 pip install 파일명(경로포함) 입력하여 설치한다.

Example

import pywinexceltool.py 새 win32.Excel 객체 생성 excel = create_new_excel_object()

새 win32.Excel.Workbook 생성 workbook = create_new_workbook(excel, [“Sheet1”, “Sheet2”])

기존 Excel 파일의 Workbook 읽어오기 workbook = load_workbook_with_path(excel,load_file_path)

Workbook에서 지정한 WorkSheet를 Dict(sheet_name:pandas.DataFrame) 으로 반환 df_dict = convert_worksheet_to_df(excel, workbook, sheet_name=[“Sheet1”,”Sheet2”], include_index=False, include_column=False) DataFrame을 건드리는 작업은 pandastool.py를 가져와서 사용하도록 하자.

DataFrame을 Excel 파일에 저장 save_df_to_excel(df_dict, workbook, sheet_name=”Sheet”, file_path=save_file_path, include_index=False, include_column=False)

# 값 # data = worksheet.Cells(1,1).Value # worksheet.Cells(1,1).Value=”값” # worksheet.Range(‘A1:B2’).Value=”값” # worksheet.Range(‘A1:B2, A6:B8’).Value=”값” # worksheet.Range(‘B1’).Interior.ColorIndex=”값”

# cell 폭 조정 # worksheet.Columns(1).ColumnWidth=10 # worksheet.Range(“B:B”).ColumnWidth=20

# cell 높이 조정 # worksheet.Rows(1).RowHeight=10 # worksheet.Range(“2:2”).RowHeight=20

my_package.pywinexceltool.convert_worksheet_to_df(excel, workbook, sheet_name=['Sheet'], include_index=False, include_column=False)

Excel 파일에서 원하는 Sheet를 지정해 dict(Dataframe) 으로 반환

Parameters
  • excel (ExcelObject) – Excel Object

  • workbook (win32com.Workbook) – Excel Workbook

  • sheet_name (list, optional) – DataFrame으로 변환시킬 Excel Workbook의 Sheet명

  • include_index (bool, optional) – index 포함여부

  • include_column (bool, optional) – column(header) 포함여부

Returns

pandas.DataFrame)

Return type

dict (sheet_name

Raises

ValueError – Excle 에서 입력받은 모든 sheet_name이 존재하지 않는 경우 발생

my_package.pywinexceltool.create_new_excel_object()

새로운 Excel 객체를 생성하여 반환

Returns

win32com.Workbook

my_package.pywinexceltool.create_new_workbook(excel, sheet_name=['Sheet'])

새 Excel 파일을 생성하여 Workbook 반환

Parameters
  • excel (ExcelObject) – Excel Object

  • sheet_name (list, optional) – 지정할 Excel Workbook의 Sheet명

Returns

win32com.Workbook

my_package.pywinexceltool.load_workbook_with_path(excel, file_path)

기존 Excel 파일의 Workbook을 가져옴

Parameters
  • excel (ExcelObject) – Excel Object

  • file_path (str) – 불러올 파일의 경로

Returns

win32com.Workbook

Raises
  • ValueError – File path를 입력하지 않은 경우

  • FileNotFoundError – File path의 경로에 파일 찾을 수 없는 경우

  • PermissionError – File path의 파일이 이미 열려있는 경우

my_package.pywinexceltool.save_df_to_excel(df_dict, excel, workbook, sheet_name=['Sheet'], file_path=None, include_index=False, include_column=False)

DataFrame를 Excel 파일에 저장

Parameters
  • df_dict (dict, optional) – key:pandas.DataFrame

  • excel (ExcelObject) – Excel Object

  • workbook (openpyxl.Workbook, optional) – 저장할 Excel Workbook

  • sheet_name (str, optional) – 저장할 Excel Workbook sheet 이름

  • file_path (str, optional) – 저장 위치 (C:Users...), 입력하지 않을 시 Default로 들어감.

  • include_index (bool, optional) – index 포함여부

  • include_column (bool, optional) – column(header) 포함여부

my_package.pywinexceltool.save_excel(excel, workbook, file_path=None, include_index=False, include_column=False)

Excel 파일을 저장

Parameters
  • excel (ExcelObject) – Excel Object

  • workbook (openpyxl.Workbook, optional) – 저장할 Excel Workbook

  • file_path (str, optional) – 저장 위치 (C:Users...), 입력하지 않을 시 Default로 들어감.

  • include_index (bool, optional) – index 포함여부

  • include_column (bool, optional) – column(header) 포함여부

my_package.pywinexceltool.show_worksheet_list(workbook)

Workbook의 sheet 목록 조회

Parameters

workbook (win32.workbook) – Workbook 객체

Module contents

Python Excel Tool 실행부