파이썬은 자동으로 MySQL의에서 엑셀로 데이터베이스에서 지정된 데이터 기록을 - 새로운 추가

xlsxwriter, openpyxl는 팬더 모듈에서 엑셀로 쓰기 데이터에 구현 될 수 있지만, 내 요구에보다 간단하고 편리한을 달성하기 위해, 조합의 3 종류를 선택합니다.
# !를 / 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 () 인쇄 ( ' 데이터를로드가 완료! ' )

추천

출처www.cnblogs.com/wsn-only/p/12132618.html