asp sql 导出 excel_Mysql数据导出到excel基于python
閱讀本文大概需要 6分鐘。
數(shù)據(jù)除了在測(cè)試平臺(tái)顯示,有時(shí)候也會(huì)習(xí)慣用excel以及郵件展示,那么我們可以在測(cè)試平臺(tái)上加一個(gè)導(dǎo)出excel功能,方便操作,下面介紹主要代碼以及邏輯。
使用操作數(shù)據(jù)庫(kù)的pymysql庫(kù),以及操作excel的xlwt庫(kù),源碼以及注釋如下:
import pymysqlimport xlwt
#連接數(shù)據(jù)庫(kù)函數(shù)1
def get_conn():??
??? coon = pymysql.connect(user='root',passwd='123456',db='autotest',port=3306,host=192.168.0.1,charset='utf8')return coon
#執(zhí)行查詢數(shù)據(jù)函數(shù)2
def query_all(cur, sql, args):??
??? cur.execute(sql, args)return cur.fetchall()
#導(dǎo)出測(cè)試用例到export_to_excel_app_case.xls函數(shù)3
def read_mysql_to_xlsx2(filename):??
??? list_table_head = ['用例編號(hào)', '用例名稱', '測(cè)試結(jié)果', '測(cè)試人員', '測(cè)試時(shí)間', '項(xiàng)目']
??? workbook = xlwt.Workbook()
??? sheet = workbook.add_sheet('data', cell_overwrite_ok=True)for i in range(len(list_table_head)):
??????? sheet.write(0,i, list_table_head[i])
??? conn = get_conn()? #調(diào)用連接數(shù)據(jù)庫(kù)函數(shù)
??? cur = conn.cursor()
??? sql = 'SELECT * from app_interface_appcase where app_interface_appcase.module = "testcase"'?#查詢用例sql語(yǔ)句results = query_all(cur, sql, None)?#調(diào)用函數(shù),定義記錄查詢到的數(shù)據(jù)? ? ? ? ? ?conn.commit()
??? cur.close()
??? conn.close()
??? row = 1for resultin results:
??????? col = 0print(type(result))print(result)foritem in result:print(item)
??????????? sheet.write(row, col, item)
??????????? col += 1row += 1workbook.save(filename)
#導(dǎo)出測(cè)試用例步聚到export_to_excel_app_casestep函數(shù)4
def?read_mysql_to_xlsx(filename):?
??? list_table_head = ['用例編號(hào)',?'用例描述',?'測(cè)試步聚',?'測(cè)試對(duì)象名稱描述',?'定位方式',?'控件元素類型',?'控件元素',?'操作方法',?'測(cè)試數(shù)據(jù)',?'驗(yàn)證數(shù)據(jù)',?'步聚測(cè)試結(jié)果',?'測(cè)試時(shí)間',?'用例測(cè)試結(jié)果',?'測(cè)試人員']? #定義表頭
??? workbook = xlwt.Workbook()
??? sheet = workbook.add_sheet('data',?cell_overwrite_ok=True)for?i?in?range(len(list_table_head)):
??????? sheet.write(0,i, list_table_head[i])
??? conn = get_conn()? ?#調(diào)用連接數(shù)據(jù)庫(kù)函數(shù)
??? cur = conn.cursor()
??? sql =?'SELECTa.id,appcasename,appteststep,apptestobjname,appfindmethod,appevelementtype,appevelement,appoptmethod,apptestdata,appassertdata,b.apptestresult,b.create_time,a.apptestresult,apptesterfrom app_interface_appcase as a,app_interface_appcasestep as b wherea.id=b.Appcase_id and module="testcase"'? #查詢用例及步聚數(shù)據(jù)results = query_all(cur, sql,?None)? #調(diào)用函數(shù),定義記錄查詢到的數(shù)據(jù)
??? conn.commit()
??? cur.close()
??? conn.close()
??? row =?1for?result?in?results:? #把結(jié)果循環(huán)寫入到sheet
??????? col =?0print(type(result))print(result)for?item?in?result:print(item)
??????????? sheet.write(row, col, item)
??????????? col +=?1row +=?1workbook.save(filename)??#保存到excel文件if __name__ == '__main__':
? ? ?#調(diào)用導(dǎo)出測(cè)試用例函數(shù)
??? read_mysql_to_xlsx2('export_to_excel_app_case.xls')??
? ??#調(diào)用導(dǎo)出用例步聚函數(shù)
??? read_mysql_to_xlsx('export_to_excel_app_casestep.xls')
導(dǎo)出excel數(shù)據(jù)如下:
代碼運(yùn)行演示視頻:
看完是不是覺得so easy呢
總結(jié)
以上是生活随笔為你收集整理的asp sql 导出 excel_Mysql数据导出到excel基于python的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 回答面试官:如何保证消息不丢失
- 下一篇: 发年终奖了,送台MacBook Air!