#!/usr/bin/env python3 #encoding=UTF-8 import os import time import xlwt hostIp = 'xxx.xxx.xxx.xx' user = 'user0001' passwd = 'xxxx' db = 'db01' sqlStr1 = 'SELECT timeout_day as 逾期天數,COUNT(1) as 統計次數 FROM t_order_info where status in (7,9) GROUP BY timeout_day HAVING timeout_day <> 0;' def createTable(selectSql,tableName): #連接數據庫,執行sql results = os.popen('mysql -h'+hostIp+' -u'+user+' -p'+passwd+' -D'+db+' -e "'+selectSql+'"').read().strip().split('\n') #獲取列名 columnName = results[0].split('\t') #創建一個excel工作簿,編碼utf-8,表格中支持中文 wb=xlwt.Workbook(encoding='utf-8') #創建一個sheet sheet=wb.add_sheet('sheet 1') #獲取行數 rows = len(results) #獲取列數 columns = len(columnName) #創建格式style style = xlwt.XFStyle() #創建font,設置字體 font = xlwt.Font() #字體格式 font.name = 'Times New Roman' #將字體font,應用到格式style style.font = font #創建alignment,居中 alignment = xlwt.Alignment() #居中 alignment.horz = xlwt.Alignment.HORZ_CENTER #應用到格式style style.alignment = alignment style1 = xlwt.XFStyle() font1 = xlwt.Font() font1.name = 'Times New Roman' #字體顏色(綠色) #font1.colour_index = 3 #字體加粗 font1.bold = True style1.font = font1 style1.alignment = alignment for i in range(columns): #設置列的寬度 sheet.col(i).width = 5000 #插入列名 for i in range(columns): sheet.write(0,i,columnName[i],style1) #將數據插入表格 for i in range(1,rows): for j in range(columns): sheet.write(i,j,results[i].split('\t')[j],style) #保存表格,並命名為‘xxxx’戶.xls wb.save(tableName) #獲取當前時間 excelTime = time.strftime("%Y%m%d") createTable(sqlStr1,excelTime+'逾期統計.xls')