inflearn logo
강의

講義

知識共有

[新規改訂版] これが本当のエクセル自動化だ - 基本編

実戦自動化:ファイル名を100個一度に変更

엑셀 파일 제목 중복되면 (1),(2) 씩 늘어나게 해서 생성하게 하기

407

KoKuMa

投稿した質問数 20

0

 파일이 중복되면 다시 지웠다가 파이썬을 실행시켜야 하는데 그걸 막기 위해 코드 추가했습니다.

import openpyxl
import random
import os
from datetime import datetime, timedelta

wb = openpyxl.Workbook()
ws = wb.active

base_path = '파일이 있는 폴더 경로 ex)c://user'
base_filename = '파일명.xlsx'
full_path = os.path.join(base_path, base_filename)

# 파일명이 겹치면 숫자를 붙여가며 저장
if os.path.exists(full_path):
    version = 1
    while os.path.exists(full_path):
        name, ext = os.path.splitext(base_filename)
        full_path = os.path.join(base_path, f"{name} ({version}){ext}")
        version += 1

ws.title = 'automation'

item = [['32인치 모니터', 350000], ['마우스 패드', 20000],['게이밍 마우스', 40000], ['기계식 키보드',120000]]

# ws['A1'] = '순번'
# ws['B1'] = '제품명'
# ws['C1'] = '가격'
# ws['D1'] = '수량'
# ws['E1'] = '합계'
# ws['F1'] = '날짜'

ws.append(['순번','제품명','가격','수량','합계','날짜'])

first_date = datetime(2024, 3, 1)

for i in range(2, 12):
    current_date = first_date + timedelta(i)
    rand_ind = random.randint(0,3)
    selected_item = item[rand_ind]
    ws.append([i-1, selected_item[0], selected_item[1], random.randint(1,8), f'=C{i}*D{i}', current_date.strftime('%Y-%m-%d')]) # strftime으로 나타내야 엑셀에서 날짜형식으로 뜬다.

wb.save(full_path)

python selenium openpyxl

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

KoKuMa님, 파이썬을 이용하여 엑셀 파일이 중복될 경우 (1), (2)와 같이 숫자를 늘려가며 새로운 파일명으로 저장하는 방법에 대한 코드를 작성하신 것을 확인했습니다. 제공된 코드는 기본적으로 파일명 중복을 확인하고, 파일명에 번호를 추가하여 중복을 피하는 로직이 잘 구현되어 있습니다. 파일이 중복되었을 때 새로운 파일명으로 저장하는 과정을 거치기 때문에 파일을 지우고 다시 파이썬을 실행시킬 필요가 없어져 업무 효율성을 크게 높일 수 있겠네요.

파이썬에서 엑셀 파일을 다루는 작업은 openpyxl 라이브러리를 통해 다양한 자동화 작업을 수행할 수 있으며, 여기에 추가된 로직은 파일 관리에 있어서도 많은 도움을 줄 것으로 보입니다. 업무 자동화 과정에서 이러한 세부적인 처리를 고려하는 것이 매우 중요합니다.

이 코드를 통해 KoKuMa님이 원하는 기능이 잘 구현되어 작업 효율성이 증가되기를 바랍니다. 추가적으로 필요한 도움이 있으시면 또 질문해주세요!

선생님 셀에서 전체 실행은 어떻게하나요?

0

87

2

전자는 보안때매 안되나요?

0

150

2

보고서, 데이터, 계산서 자동 정리 프로그램 오류

0

208

1

사이트 접속 후 로그인 버튼 클릭 시 문제점

0

280

3

엑셀 다루기 기초에서 날짜 1일씩 늘어나게 하기

0

847

1

크롬창이 자꾸 꺼져요!!

0

912

1

mouseInfo

0

284

1

pyautogui.mousInfo() 질문(영상 11:03)

0

221

2

네이버 메일 자동화 실습 문의

0

372

1

pip명령이 vscode 명령프롬프트에서만 않되네요

0

4450

2

매출데이터 생성 price 오류

0

366

2

네이버 자동화 실습 관련 질의

0

448

1

pyautogui.center(pyautogui.locateOnScreen('wmp.PNG', grayscale=True, confidence=0.7)) 좌표 이상

0

538

2

블로그에 강의 코드를 정리해서 올려도 괜찮을까요??

0

408

1

Chrome version 116, Selenium version 4.11.2 이후

0

719

1

python upgrade 후 selenium 인식 불가

0

811

1

Google Chrome 업데이트 이후 크롬드라이브 실행 오류

0

2158

2

크롬드라이브 실행 오류

1

15385

4

오프라인 pip설치문의

0

1232

2

네이버 메일 자동화, 메일 창이 새탭에 생성

0

908

1

팝업 설명창?

0

419

1

셀레니움 기초 사용법

0

545

1

키보드 자동화_소문자 ko 입력 안되는 이유 질문 드려요

0

487

1

TypeError: 'module' object is not callable 이런 오류가 뜹니다

0

733

1