import os
import win32com.client
def column_number_to_letter(column_number):
"""
열 번호를 열 문자로 변환합니다.
:param column_number: 열 번호 (1부터 시작)
:return: 열 문자 (예: 1 -> "A", 27 -> "AA")
"""
letter = ""
while column_number > 0:
column_number, remainder = divmod(column_number - 1, 26)
letter = chr(65 + remainder) + letter
return letter
def delete_continuous_range(file_path, sheet_name, start_cell):
"""
특정 Excel 파일의 Sheet에서 시작 셀부터 연속적인 데이터 범위를 지웁니다.
:param file_path: Excel 파일 경로
:param sheet_name: 워크시트 이름
:param start_cell: 시작 셀 주소 (예: "J5")
"""
try:
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = False # Excel 창 숨기기
# Excel 파일 열기
workbook = excel.Workbooks.Open(file_path)
worksheet = workbook.Sheets(sheet_name)
# 시작 셀 정보
start_range = worksheet.Range(start_cell)
start_row = start_range.Row
start_col = start_range.Column
# 데이터가 연속된 행 탐색
last_row = start_row
for row in range(start_row, worksheet.UsedRange.Rows.Count + 1):
# 해당 행의 데이터가 없으면 종료
if worksheet.Cells(row, start_col).Value is None:
break
last_row = row
# 데이터가 있는 마지막 열 계산
used_range = worksheet.UsedRange
last_col_num = used_range.Columns.Count + used_range.Column - 1
last_col = column_number_to_letter(last_col_num)
# 연속된 데이터 범위 삭제
delete_range = f"{start_cell}:{last_col}{last_row}"
worksheet.Range(delete_range).ClearContents()
print(f"'{delete_range}' 범위의 데이터를 성공적으로 삭제했습니다.")
# 파일 저장 및 닫기
workbook.Save()
workbook.Close()
excel.Quit()
except Exception as e:
print(f"오류 발생: {e}")
finally:
excel.Quit()
# 실행
sheet_name = "Sheet1" # 워크시트 이름
start_cell = "J5" # 시작 셀
# 다른 경로와 파일 이름 결합
file_name = "01vlookup.xls"
data_folder = "./data"
# 파일 전체 경로 생성
file_path = os.path.abspath(os.path.join(data_folder, file_name))
# file_path = "./data/01vlookup.xlsx" # 업로드된 파일 경로
# 현재 경로와 파일 이름 결합
# current_directory = os.getcwd()
# file_path = os.path.join(current_directory, file_name)
delete_continuous_range(file_path, sheet_name, start_cell)
'컴퓨터 > Python' 카테고리의 다른 글
python 주민번호 검증 (0) | 2024.12.08 |
---|---|
python jupyter lab 셀 배경 바꾸기 (0) | 2024.12.04 |
python 클립보드에서 엑셀파일 붙여넣기 win32 (0) | 2024.11.29 |
python xlsx→xls xlsx→xlsm 파일 변환 (0) | 2024.11.05 |
python vba코드 있는 xls→xlsm xlsm→xls (0) | 2024.11.05 |