如何导出数据库中的内容
如何导出数据库中的内容
#encoding=utf-8 import pymysql import string import xlsxwriter import datetime # 定义时间标志变量 sheet_time = datetime.datetime.now() sheet_mark = sheet_time.strftime('%Y-%m-%d') book_mark = sheet_time.strftime('%Y%m%d') # 定义输出excel文件名 workbook = xlsxwriter.Workbook('select_'+book_mark+'.xlsx') # 定义sheet的名字 worksheet = workbook.add_worksheet(sheet_mark) # 定义sheet中title的字体format bold = workbook.add_format({'bold': True}) # 定义sql查询命令 cmd="select * from db3.student;" # 定义链接mysql的用户信息 字典 # Loginfo = {'USER':'admin', 'PSWD':'admin', 'HOST':'10.10.60.105', 'PORT':4001} # 调用MySQLdb模块 链接 mysql conn=pymysql.connect(host= "localhost",database="db3",user="root",password="123456",charset='utf8') cur=conn.cursor() cur.execute(cmd) # 查询数据结果和字段名字 赋值给两个变量 result = cur.fetchall() #查询的数据信息 fields = cur.description # 查询到的标题描述信息 # 将结果写入excel中 # 定义title的坐标:row=0,col=0~字段总数 也就是excel的第一行:0,0 ~ 0,len(fields) # 关于fields的结果如下图:通过fields[field][0] 获取字段名 for field in range(0,len(fields)): worksheet.write(0,field,fields[field][0],bold) #数据坐标0,0 ~ row,col row取决于:result的行数;col取决于fields的总数 for row in range(1,len(result)+1): for col in range(0,len(fields)): worksheet.write(row,col,u'%s' % result[row-1][col]) cur.close() conn.close() workbook.close()
导出来的数据在当前py文件的相同文件夹下

导出数据不能显示中文和解决办法,字符集编码的问题。
1.
conn=pymysql.connec(charset='utf8'),设置下读取数据的编码。
2.
Excel版本问题 ,导出文件的格式: .xlsx/xls。或者打开方式:WPS或者Excel
浙公网安备 33010602011771号