Python脚本:实现数据库导出数据到excel表格,支持mysql,postergrsql,MongoDB

import xlwt


#返回需要导出的对象的集合,根据业务字型实现
def getObjList():
    return []

# 制定 表格行 和数据库字段的对应
obj_feild = {
    0: 'name',  # 表格第一行是名字
    1: 'age',  # 表格第二行是年龄
    2: 'sno',  # 表格第三行是学号
    3: 'sex',  # 表格第四行是性别
}
# 制定数据库字段和中文的对应
field_chinese = {
    'name':'名字',  # 数据库字段 name对应excel表格字段名字
    'age': '年龄',  # 数据库字段 age 对应excel字段 年龄
    'sno':'学号',  # 同上
    'sex':'性别',  # 同上
}



def dbexportXls(file_path,obj_feild,field_chinese):
    
    workbook = xlwt.Workbook()
    #生成一个sheet
    sheet = workbook.add_sheet('1', cell_overwrite_ok=True)
    
    table_attrs = collections.OrderedDict()
    # 写入表格的属性值
    for k, v in obj_feild.items():
        sheet.write(0, int(k), field_chinese[v])
        table_attrs[int(k)] = v
    print('表格属性:', table_attrs)
    
    #获得要导出的对象集合
    results = getObjList()
    
    #遍历对象集合
    for i in range(0,len(results)):
        row = results[i]
        for j in obj_feild:
            sheet.write(i+1,int(j),row[obj_feild[j]]) 
   #保存表格
    workbook.save(file_path)
    if os.path.isfile(file_path):
        print('数据库中成功导出数据')       
    else:
        print('数据库导出错误')
  
        
#调用
if __name__ == '__main__':
    dbexportXls('/usr/text.xlsx',obj_feild,field_chinese)

使用  参数file_path 就是你需要导出表格的名字  建议以  .xls 结尾

猜你喜欢

转载自www.cnblogs.com/lelexiu/p/10192263.html