Python 을 사용 하여 엑셀 작업 지침 을 봉인 합 니 다.

머리말
openpyxl 은 python 에서 엑셀 표를 조작 하 는 데 자주 사용 되 는 라 이브 러 리 로 엑셀 파일 을 읽 고 기록 할 수 있 으 며[xlsx/xlsm/xlx/xltm]형식의 파일 을 지원 하 며 엑셀 데이터,공식,스타일 을 처리 할 수 있 으 며 표 에 도 표를 삽입 할 수 있 습 니 다.
그러나 실제 프로젝트 의 사용 과정 에서 openpyxl 을 자주 사용 하여 조작 하고 해당 하 는 패 키 징 을 하려 면 적은 노력 으로 큰 효 과 를 거 둘 수 있다.
구조 설명

- - config   폴 더 설정
- - - - dir_config.py  파일 경로 등 관련 정보 설정
- - - - excel_handler.py  엑셀 봉인 작업 에 사용
- - exceldir 표 파일 저장 경로
- - run.py   실행 파일
코드 분석
excel_handler.py

from openpyxl import load_workbook
from openpyxl.worksheet.worksheet import Worksheet


class ExcelHandler():
 '''
   Excel
 '''

 def __init__(self, file):
  '''     '''
  self.file = file

 def open_sheet(self, sheet_name) -> Worksheet:
  '''    '''
  wb = load_workbook(self.file)
  sheet = wb[sheet_name]
  return sheet

 def read_header(self, sheet_name):
  '''       '''
  sheet = self.open_sheet(sheet_name)
  headers = []
  for i in sheet[1]:
   headers.append(i.value)
  return headers

 def read_rows(self,sheet_name):
  '''
            (          )
              ,          ,   for   *  
  '''
  sheet = self.open_sheet(sheet_name)
  rows = list(sheet.rows)[1:]

  data = []
  for row in rows:
   row_data = []
   for cell in row:
    row_data.append(cell.value)
   data.append(row_data)

  return data

 def read_key_value(self,sheet_name):
  '''
        ,               (      )
   :[
  {'  ':1,'    ': '680021685898','    ':'    '},
  {'  ':2,'    ': '680021685899','    ':'    '}
  ]
  '''
  sheet = self.open_sheet(sheet_name)
  rows = list(sheet.rows)

  #     
  data = []
  for row in rows[1:]:
   rwo_data = []
   for cell in row:
    rwo_data.append(cell.value)
    #        ,         zip      
   data_dict = dict(zip(self.read_header(sheet_name),rwo_data))
   data.append(data_dict)
  return data


 @staticmethod
 def write_change(file,sheet_name,row,column,data):
  '''  Excel  '''
  wb = load_workbook(file)
  sheet = wb[sheet_name]

  #      
  sheet.cell(row,column).value = data
  #   
  wb.save(file)
  #   
  wb.close()
Excel 데 이 터 를 기록 하 는 단 계 는 정적 방법 을 사 용 했 습 니 다.파일 을 읽 을 때 저장 할 필요 가 없 기 때 문 입 니 다.파일 을 수정 한 후에 저장 하지 않 으 면 다른 곳 에서 이 방법 을 호출 하면 오류 가 발생 할 수 있 기 때문에 엑셀 을 수정 할 때마다 한 번 씩 저장 합 니 다.
dir_config.py

import os

# ExcelDemo        
base_dir = os.path.split(os.path.split(os.path.abspath(__file__))[0])[0]

# excel       
excel_dir = os.path.join(base_dir,'excedir')


run.py

import os

from ExcelDemo.config.excel_handler import ExcelHandler
from ExcelDemo.config import dir_config

excelfile = os.path.join(dir_config.excel_dir,'    .xlsx')


if __name__ == '__main__':
 excel = ExcelHandler(excelfile)
 header = excel.read_header('Sheet1')
 data = excel.read_rows('Sheet1')
 data2 = excel.read_key_value('Sheet1')

 print(header)
 '''
 ['  ', '    ', '  ', '    ', '   ']

 '''


 print('**********************************')
 print(data)
 '''
 [
 [1, '680021685898', '    ', 20200503, 'CZ6754'],
 [2, '189000177074', '(  )    ', 20200603, 'CZ6880'], 
 [3, '480005387697', '    ', 20200612, 'CZ5390'], 
 [4, '380025990156', '    ', 20200619, 'CZ6622']
 ]
 
 '''



 print('**********************************')
 print(data2)
 '''
 [
 {'  ': 1, '    ': '680021685898', '  ': '    ', '    ':20200503, '   ': 'CZ6754'},
 {'  ': 2, '    ': '189000177074', '  ': '(  )    ', '    ': 20200603, '   ': 'CZ6880'}, 
 {'  ': 3, '    ': '480005387697', '  ': '(  )  ', '    ': 20200612, '   ': 'CZ5390'},
 {'  ': 4, '    ': '380025990156', '  ': '    ', '    ': 20200619, '   ': 'CZ6622'}
 ]
 
 '''

 excel.write_change(excelfile,'Sheet1',6,5,'    ')
 excel.write_change(excelfile,'Sheet1',2,3,'    ')
수정 후 표 내용

총결산
파 이 썬 패 키 징 엑셀 작업 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 패 키 징 엑셀 작업 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기