데이터베이스 쿼리 결과에 연결 파이썬은 엑셀에 데이터를 기입하기

데이터베이스 쿼리를 사용하여 파이썬 데이터 링크는 쿼리 결과는 엑셀 쓰기, 데이터, 두 번째 확인, 첫번째 방법에 두 가지 주요 단계를 달성하기 위해 Excel로 작성됩니다.

첫째, 필요 패키지를 가져옵니다

수입 시간
 수입 xlwt
 에서 commontool의 수입 dbtool의
 수입 운영 체제

 

둘째, 데이터를 확인하고 쿼리 결과를 반환

  데이터베이스의 트랜잭션 날짜 범위 쿼리의 지정된 날짜를 사용하여 지정된 날짜에 쿼리 데이터입니다. 문자열로 들어오는 날짜 때문에, 당신은 시간의 배열로 입력되는 문자열을 변환하는 데 필요한 첫 번째 단계는, 다음 두 번째 단계는 당신이 원하는 시간 형식으로 들어오는 날짜를 변환합니다.

클래스 의 WriteFile :
    파일 = R " F : \ 파이썬 \ PycharmProjects \ pythonpractice \ fileshandle \ 파일 " 
DEF queryData (자체, DATE) : "" " 쿼리 데이터베이스 결과 " "" self.date = DATE datestruct = time.strptime (self.date, " %의 m %%는 Y D " ) #은 시간을 문자열 배열로 변환 DATE = time.strftime ( " % Y-M- %의 D %의 " , datestruct) # 1 시간 변환 다른 형식으로 startTime을 DATE + = ' 0시 0분 0초 ' endtime에 + = DATE ' 23시 59분 59초 ' DB = dbtool.db () orderquery = " ordersummary에서 MERCHANTID, payorderid, 주 paytime, innerbank을 선택 어디 %의 S '및'% S '사이 paytime; " % (STARTTIME, 종료 시각) 입술 = db.dbquery (db.dbconnect () [3 ] orderquery) .fetchall () 리턴 입술

엑셀 셋째, 쓰기 쿼리 결과

  여기에 사용 된 Excel로 작성된 쿼리 결과, xlwt 모듈,해야 할 첫 번째 일은이다 : 엑셀을 만든 다음 시트 페이지를 만들 머리글을 필요로하고 또한 헤더를 작성해야합니다. 헤더의 형식은 목록입니다.

  그것은 주목해야한다 :

  (1) 정지 기능을 포함하지 않는 범위 그래서 여기에 모든 데이터 쿼리를 작성 할, 수있다, 당신은 (고해상도) +1 렌해야합니다. 예를 들어 쿼리의 범위 (1,4) 만 1,2,3,4, 5를 그리워 할 것이다 5, 결과, 그래서 1 개 쿼리 결과를 추가 할 필요가있다.

  두번째 라인 (2) 엑셀 (첫 번째 행이 헤더 인) 데이터는 첫 번째 행에 기록 된 데이터를 조회하므로한다 문의 번째 줄에 기록되는 행 = 1 개 대표 sheet.write (행 , COL, RES [-Row. 1 ] [COL]) 행-1을 사용.

    DEF의 write_excel (자체, RES) :
         "" " 동작 Excel에서 " ""  = xlwt.Workbook ()                                      #은 새 Excel 만들 
        시트 = book.add_sheet ( ' 수출 데이터를 ' )                           #이 시트 만들기 
        제목 = [ ' 사업 번호 ' , ' 일련 번호 ' , ' 거래 상태 ' , ' 거래 시간 ' , ' 거래 장소 ' ]     #의 쓰기 헤더

        # 사이클 헤더 페이지가 시트에 기록 
        I = 0
         에 대한 헤더 제목 :
            sheet.write (0, I, 헤더)
            I + = 1

        # 写数据
        대한 범위 (1, LEN (해상도) +1 )
             에 대한 대장균  범위 (0, LEN (입술 [행-1 ])) :
                sheet.write (행, COL, 입술 [로우 -1 ] [COL])
                COL + 1 =  + = 1 
        book.save (self.file + " \ 무역 수출 .XLS " )
         인쇄 ( " 수출 성공 " )

네, 생성 Excel을 반복 여부가 결정된다

  , 파일 경로 생성 본, 삭제, 변경은 그 다음 또는 백업 경로로 이동하는 경우, 파일 경로의 존재를 필요로 생성을 반복할지 여부를 결정하고, 반복 삭제하는 것으로 사용된다.

  os 모듈을 사용하여 여기에 파일을 삭제합니다.

    데프 judge_file_exist (자동) :
         경우 os.path.exists (self.file + " \交易导出.XLS " ) :
            os.remove (self.file + " \ 무역 수출 .XLS " )

다섯째, 주요 흐름이 몇 단계보다 더, 주요 기능은 이제 함께 문자열 그들에게 필요합니다.

  첫 번째 파일이 있는지 여부를 확인하고 파일 방법을 쓰기 호출합니다.

    데프 의 WriteFile (자기) :
        날짜 = ' 20191028 '
        self.judge_file_exist ()
        self.write_excel (self.querydata (일))

 

추천

출처www.cnblogs.com/deliaries/p/11792137.html