# !를 / usr / 빈 / ENV python3
# - * - 코딩 : UTF-8 - * -
# @time : 2019년 12월 26일 16:55
# @author : WSN
가져 오기 팬더 AS는 PD
가져 오기 pymysql, openpyxl, 운영 체제, xlsxwriter
# 세트 엑셀 파일 이름
버전 = ' V1.4.6 '
파일 이름 = ' % s의 인터넷 버전 UAT 자동화 된 운영 및 유지 보수 작업 순서 기록 .XLSX ' % (버전)
os.chdir ( ' C : \\ a_myfile ' )
#에 연결 데이터베이스 MySQL은
설정 = { " 호스트 " : " 192.168.7.180 ",
" 데이터베이스 " : " autosql_prod2 " ,
" 사용자 " : " 루트 " ,
" 비밀번호 " : " 123456 " ,
" 포트 " : 3306 ,
" 문자 집합 " : " UTF8 " }
dB = pymysql.connect (호스트 = 설정 [ ' 호스트는 ' ], 데이터베이스 [설정 = '데이터베이스 ', 사용자 설정 = [ ' 사용자 ' ,
패스워드 = 설정 [ " 패스워드 " , 포트 설정 = [ ' 포트 ' , 캐릭터 설정 = [ ' 캐릭터 ' ])
SQL = " SELECT b.WFI_WORKNO工单号먼트 .WFI_VERSIONNO版本号, b.WFI_APPCODE应用, DATE_FORMAT (DATE_SUB (a.WORKINFO_UPDATETIME, INTERVAL 0 MONTH), ' \
' \ '% Y- % M- % D \')日期, b.WFI_EXECUTEENV执行环境, b.WFI_FILENAME脚本名称t_as_workfileinfo B에서 t_as_workinfo ' \
' WHERE b.`WFI_WORKNO` = a.WORKINFO_WORKNO와.WORKINFO_WORKSTATE = \ '07 \ '' \
' 와 b.WFI_VERSIONNO = b.WFI_WORKNO에 의해 \ 'V1.4.7 \'순서 '
결과는 # SQL 리턴 형식 dataFrame로 저장된
데이터 = pd.read_sql (SQL, DB)
# rownu 쿼리 항목 번호 결과
rownu = data.index.stop # 기존에 엑셀 파일에 추가 데이터를
DEF의 insertexcel () :
통합 문서 = openpyxl.load_workbook (파일 이름)
시트 = 통합 문서 [ ' Sheet1의 ' ]
에 대한 I 의 범위 (0, rownu) :
sheet.append (목록 (data.values [I]))
workbook.save ( ' % S 버전 UAT 자동화 된 운영 및 유지 보수 인터넷 작업 순서 기록 .XLSX ' % (버전))
workbook.close () # 엑셀 문서를 작성하고 목록 형식의 머리를 설정
데프newexcel () :
통합 = xlsxwriter.Workbook (파일명)
시트 = workbook.add_worksheet ()
sheet.set_column ( " A : " 30 )
sheet.set_column ( ' B : E ' , 11 )
sheet.set_column ( ' F : F ' , 75 )
이 호 = 목록 (데이터)
headbold = workbook.add_format ({ " 굵은 " 트루,
' 정렬 ' : ' 중심 ',
' 국경 ' :. 1 ,
" bg_color ' : ' # D3D3D3 ' })
sheet.write_row ( ' A1 ' , 제목, headbold)
에 대한 I 의 범위 (0, rownu)
sheet.write_row ( ' % S ' %을 ( 2 + I ) data.values [I])
workbook.close () #는 대응하는 파일이 존재하는지 여부를 판정 실행 기능
에 IF os.path.exists (파일명)
인쇄 ( " ---- 파일이 이미 존재하는, 부가 데이터를 ---- %로 S '% 파일 이름)
insertexcel ()
다른 :
인쇄 ( ' ---- 파일이 존재하지 않는, 새로운 파일 ---- S % ' % 파일 이름)
newexcel ()
인쇄 ( ' 데이터를로드가 완료! ' )