import os import win32com.client as win32 import shutil import openpyxl ##### 첫 번째 단계는 xlsx 파일을 원래 폴더에 놓고 bak 폴더에 직접 복사하는 것입니다. 슬라이스 rst 파일 = [] 경로 = os.getcwd () # 변환 전에 프로그램이 위치한 파일 디렉토리 path_bak = os.getcwd () + r '/ bak /' pathdir = os.listdir (path) print (pathdir) for s in pathdir : newdir = os.path. join (path, s) if os.path.isfile (newdir) : os.chdir (path_bak) pathdir_bak = os.listdir (path_bak) # print (pathdir_bak) if os.path.splitext (newdir) [1] == " .xls ": t = os.path.split (s) [1] + r'x ' if os.path.exists (t) : # print (os.path.exists (os.path.split (s) [1])) break excel.Application.Quit () else : excel = win32.gencache.EnsureDispatch ( 'Excel.Application') wb = excel.Workbooks.Open (newdir) # print (newdir) path_dir = os.path.split (newdir) [0] path_file = os.path. split (newdir) [1] # print (path_dir) # print (path_file) wb.SaveAs (path_dir + '/ bak /'+ path_file + 'x', FileFormat = 51) # FileFormat = 51은 .xlsx 확장자 wb 용입니다. Close () # FileFormat = 56은 .xls 확장자 용입니다. elif os.path.splitext (newdir) [1] == ".xlsx": file.append (newdir) elif os.path.isdir (newdir) : 계속하다 for i in range (len (file)) : pcm_file = file [ i] path_0 = os.path.split (file [i]) [0] path_1 = os.path.split (file [i]) [1] 이전 이름 = 경로 _0 + '/'+ 경로 _1 새 이름 = 경로 _0 + r '/ bak / '+ path_1 shutil.copyfile (oldname, newname) ##### 두 번째 단계는 파일 디렉토리를 bak 폴더로 전환하고 슬라이스 uvw file_deal = [] path_deal = os.getcwd () # 프로그램 위치 변환 전 파일 디렉토리 pathdir_deal = os.listdir (path_deal) for u in pathdir_bak : newdir_deal = os.path.join (path_deal, u) file_deal.append (newdir_deal) # print (file_deal) 범위 (len (file_deal))에있는 j의 경우 : pcm_file_deal = file_deal [j] path_0_deal = os.path.split (file_deal [j]) [0] # 文件 所在 目录 path_1_deal = os.path.split (file_deal [j]) [1] # 文件 名称 带 后缀 # print (pcm_file_deal) # print (path_0_deal) print (path_1_deal) wb = openpyxl.load_workbook (path_1_deal) allSheets = wb.get_sheet_names () for i in range (len (allSheets)) : sheet = wb.get_sheet_by_name (allSheets [i]) for row in sheet.iter_rows () : for cell in row : if str (str (cell.value) .replace ( '', '')). find ( "资产 负债 表" )! = -1 : sheet_selected = wb.get_sheet_by_name (allSheets [i]) print (sheet_selected) break ws = wb.get_sheet_by_name (sheet_selected.title) print (ws)
테이블의 논리적 루프 가져 오기
추천
출처blog.csdn.net/jidawanghao/article/details/112680178
추천
행