python 으로 excel 표 의 한 열 내용 을 수정 하 는 조작 방법

5752 단어 pythonexcel내용.
한 회사 에서 표를 작성 하고 있 는 것 을 생각해 보 세 요.지금 아래 에 있 는 엑셀 시계 가 당신 앞 에 놓 여 있 습 니 다.이것 은 직원 의 매달 월급 표 입 니 다.
在这里插入图片描述
지금 만약 에 당신 이 해 야 할 일 은 다음 몇 개 월 동안 모든 직원 의 번 호 를 채 우 고 직원 에 게 2000 에서 50000 사이 의 임 의 수 를 이 달의 월급 으로 무 작위 로 생 성 하 는 것 입 니 다.얼마나 받 을 수 있 는 지 는 하늘의 뜻 에 달 려 있 습 니 다.당신 은 자신의 python 능력 을 단련 하기 위해 관련 된 코드 를 쓰기 로 결 정 했 습 니 다.
1 라 이브 러 리 도입
먼저 라 이브 러 리 함 수 를 도입 하고 엑셀 내용 을 수정 하려 면 먼저 openpyxl 라 이브 러 리 가 있어 야 합 니 다.무 작위 수 를 만 들 려 면 random 라 이브 러 리 가 있어 야 합 니 다.

import openpyxl
import random
2 추출 셀
우 리 는 먼저 번 호 를 추출 합 니 다.
번 호 는 B 열 입 니 다.

workbook=openpyxl.load_workbook('  .xlsx')
table = workbook['Sheet1']

print(table['B'])
在这里插入图片描述
3 추출 목록
그러나 이때 우 리 는 흔히 볼 수 있 는 list 형식 이 아 닌 cell 형식의 데 이 터 를 추출 한 것 을 발견 했다.우 리 는 다음 과 같은 방식 으로 list 형식 을 얻 을 수 있다.

def cell2List(CELL):
    LIST=[]
    for cell in CELL:
        LIST.append(cell.value)
    return LIST

IDList=cell2List(table['B'])
print(IDList)
在这里插入图片描述
4 리스트 데이터 수정
이제 우 리 는'작업 번호'라 는 몇 글자 의 위 치 를 찾 아야 한다.

def get_location_in_list(x, target):
    step = -1
    items = list()
    for i in range(x.count(target)):
        y = x[step + 1:].index(target)
        step = step + y + 1
        items.append(step)
    return items

IDPos=get_location_in_list(IDList, '    ')
print(IDPos)
在这里插入图片描述
그 다음 에 우 리 는 맨 앞 에 있 는 직원 의 이름 을 뒤로 복사 해 야 한다.만약 에 우리 가 5 명 이 있다 는 것 을 알 고 작은 제목 이 두 칸 을 차지 하 는 것 을 알 고 있다 고 가정 해 야 한다.
그러면 다음 코드 를 작성 합 니 다:

staffNum=5
for i in range(0,len(IDPos)):
    IDList[IDPos[i]+1:IDPos[i]+2+staffNum]=IDList[IDPos[0]+1:IDPos[0]+2+staffNum]
print(IDList)
在这里插入图片描述
5 셀 값 수정
이 럴 때 우 리 는 cell 만 부여 하면 된다.

tempi=0
for cell in table['B']:
    cell.value=IDList[tempi]
    tempi=tempi+1
이때 다음 과 같은 오 류 를 발견 했다.
在这里插入图片描述
이 때 는 우리 가 합 친 칸 이 있 으 니까.
在这里插入图片描述
코드 를 다음 과 같은 형식 으로 바 꾸 면 됩 니 다.

tempi=0
for cell in table['B']:
    try:
        cell.value=IDList[tempi]
    except:
        print('')
    tempi=tempi+1
6.원래 EXCEL 또는 새 EXCEL 저장
주로 뒤의 인 자 를 변경 합 니 다.예 를 들 어 result.xlsx 를 새로 저장 하고 싶 습 니 다.

workbook.save(filename = "result.xlsx")
7.기타 형식 수정(왼쪽 에서 예)
만약 당신 이 발견 한다 면,이때 저장 결과 번호 국 에 있 습 니 다.
在这里插入图片描述
왼쪽 에 있 고 싶 습 니 다.앞의 코드 를 다음 과 같이 수정 하면 됩 니 다.

tempi=0
for cell in table['B']:
    try:
        cell.value=IDList[tempi]
        cell.alignment = openpyxl.styles.Alignment(horizontal='left', vertical='center')
    except:
        print('')
    tempi=tempi+1
8 무 작위 임금 생 성
앞 과 비슷 하고 간단 합 니 다.전체 코드 를 보고 스스로 깨 닫 는 것 을 권장 합 니 다.
9 전체 코드

import openpyxl
import random

def cell2List(CELL):
    LIST=[]
    for cell in CELL:
        LIST.append(cell.value)
    return LIST
def get_location_in_list(x, target):
    step = -1
    items = list()
    for i in range(x.count(target)):
        y = x[step + 1:].index(target)
        step = step + y + 1
        items.append(step)
    return items

workbook=openpyxl.load_workbook('  .xlsx')
table = workbook['Sheet1']

IDList=cell2List(table['B'])
salaryList=cell2List(table['C'])
IDPos=get_location_in_list(IDList, '    ')

staffNum=5
for i in range(0,len(IDPos)):
    IDList[IDPos[i]+1:IDPos[i]+2+staffNum]=IDList[IDPos[0]+1:IDPos[0]+2+staffNum]
    for j in range(IDPos[i]+1,IDPos[i]+2+staffNum):
            salaryList[j]=1


# tempi=0
# for cell in table['B']:
#     cell.value=IDList[tempi]
#     tempi=tempi+1

tempi=0
for cell in table['B']:
    try:
        cell.value=IDList[tempi]
        cell.alignment = openpyxl.styles.Alignment(horizontal='left', vertical='center')
    except:
        print('')
    tempi=tempi+1

tempi=0
for cell in table['C']:
    try:
        if salaryList[tempi]==1:
            cell.value=random.randint(2000,50000)
    except:
        print('')
    tempi=tempi+1

workbook.save(filename = "result.xlsx")
효과:
在这里插入图片描述
이상 은 python 으로 엑셀 표 의 특정한 내용 을 수정 하 는 상세 한 내용 입 니 다.python 으로 엑셀 을 수정 하 는 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기