Python 은 이렇게 놀 수 있 습 니 다.30 줄 코드 로 엑셀 에서 개인 당직 표를 추출 할 수 있 습 니 다.
1.엑셀 모듈 xlrd,xlwt,xlutils 는 각각 엑셀 파일 의 읽 기,쓰기,읽 기,쓰기 변환 작업 을 책임 집 니 다!
2.openpyxl 은 엑셀 파일 을 읽 고 쓸 수 있 습 니 다!
3.pandas 는 엑셀 파일 을 읽 고 쓸 수 있 습 니 다!
2.openpyxl 모듈 설치
pip install openpyxl
3.당직 표 에서 자신의 정 보 를 읽 고 선별 합 니 다.1.모든 당직 정 보 를 읽 기;
2.일반적인 상황 에서 엑셀 은 일부 표 가 비어 있 기 때문에 모든 None 의 엑셀 줄 문자열 데 이 터 를 저장 합 니 다.
3.모든 당직 데 이 터 를 순환 하여 현재 줄 데 이 터 를 데이터 문자열 로 만 듭 니 다.
4.현재 당직 정보 문자열 에 자신의 이름 이 있 는 지 판단 하기;
5.자신의 정 보 를 포함 하 는 데이터 의 핵심 정보(당직 시간,이름)를 저장 합 니 다.
6.현재 문자열 에 None 데이터 가 모두 포함 되 어 있 는 지 판단 합 니 다.
7.당직 표 에 비 어 있 는 줄 이 없 기 때문에 None 을 찾 으 면 바로 순환 에서 벗 어 납 니 다.
dutys = []
book = openpyxl.load_workbook('duty.xlsx',data_only=True)
sheet = book.active
all_data = book.get_sheet_by_name(" ")
none_str = ''.join([str(None).ljust(20) for c in range(1,all_data.max_column+1)])
for r in range(1,all_data.max_row + 1):
cur_str = ''.join([str(all_data.cell(row=r,column=c).value).ljust(20) for c in range(1,all_data.max_column+1)])
if cur_str.find("***") >= 0:
dutys.append({
"date": all_data.cell(row=r,column=2).value,
"name": all_data.cell(row=r,column=3).value
})
elif cur_str.find(none_str) >= 0:
break
return dutys
4.자신의 당직 정보 표를 만 듭 니 다.1.당직 정보 표를 만 드 는 엑셀;
2.자신의 당직 정 보 를 순환 시킨다.
3.만 든 표 에 정 보 를 입력 합 니 다.
book = openpyxl.Workbook()
sheet = book.active
for i in range(len(dutys)):
sheet.cell(row=1 + i, column=1).value = dutys[i].get("name")
sheet.cell(row=1 + i, column=2).value = f'{dutys[i].get("date")}'
book.save('my_duty.xlsx')
5.모든 코드
#!/usr/bin/env python
"""
@Author :Rattenking
@Date :2021/06/02 10:19
@CSDN :https://blog.csdn.net/m0_38082783
"""
import openpyxl
import time
def get_my_duty_date():
dutys = []
book = openpyxl.load_workbook('duty.xlsx',data_only=True)
sheet = book.active
all_data = book.get_sheet_by_name(" ")
none_str = ''.join([str(None).ljust(20) for c in range(1,all_data.max_column+1)])
for r in range(1,all_data.max_row + 1):
cur_str = ''.join([str(all_data.cell(row=r,column=c).value).ljust(20) for c in range(1,all_data.max_column+1)])
if cur_str.find("***") >= 0:
dutys.append({
"date": all_data.cell(row=r,column=2).value,
"name": all_data.cell(row=r,column=3).value
})
elif cur_str.find(none_str) >= 0:
break
return dutys
def create_my_duty_list(dutys):
book = openpyxl.Workbook()
sheet = book.active
for i in range(len(dutys)):
sheet.cell(row=1 + i, column=1).value = dutys[i].get("name")
sheet.cell(row=1 + i, column=2).value = f'{dutys[i].get("date")}'
book.save('my_duty.xlsx')
if __name__ == "__main__":
start_time = int(round(time.time() * 1000))
dutys = get_my_duty_date()
create_my_duty_list(dutys)
end_time = int(round(time.time() * 1000))
print(f' :{end_time - start_time}ms')
6.집행 결과7.총화
openpyxl 모듈 의 각 기능 을 잘 알 고 엑셀 에 대한 조작 을 편리 하 게 합 니 다.자신 이 관심 을 가 지 는 관건 적 인 정 보 를 선별 하여 표를 다시 작성 합 니 다.다음 편 은 당직 시간 에 따라 python 으로 자신의 위 챗 에 자동 으로 메 시 지 를 보 내 힌트 를 드 립 니 다!
파 이 썬 이 이렇게 놀 수 있 는 것 은 30 줄 코드 로 엑셀 에서 개인 당직 표를 추출 하 는 글 입 니 다.더 많은 파 이 썬 이 엑셀 에서 개인 당직 표 내용 을 추출 할 수 있 습 니 다.예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.