python的图形化界面中关于excel表格的导入和导出操作_python 操作extel实战之写一个函数,传入一个表名,导出到excel中...

本文介绍了如何使用Python实现一个函数,通过输入表名,将数据库中的表数据导出到Excel文件。涉及到Pymysql用于数据库连接,xlwt库用于创建Excel文件。函数首先检查表是否存在,然后执行SQL获取数据,并将数据写入Excel。整个过程旨在简化数据库到Excel的转换操作。
摘要由CSDN通过智能技术生成

需求:写一个函数,传入一个表名,把这个表里面的数据导出到excel中

def export_excel('students'):

pass

students.xls

import pymysql ,xlwt

name=input('输入你要传入的表名:').strip()

#连接数据库

connect = pymysql.connect(host='118.24.3.40',user='jxz',

password='123456',

port=3306,db='jxz',

autocommit=True,charset='utf8')

cur=connect.cursor(pymysql.cursors.DictCursor)#建立游标

tab_sql="SELECT table_name FROM information_schema.TABLES WHERE table_name ='%s';"%name

cur.execute(tab_sql)

if cur.fetchall():#判断有没有结果

quer_sql='select * from %s;'%name

cur.execute(quer_sql)#执行sql

data=cur.fetchall()#拿到表中的数据

#拿到表头两个方法一个是du,另一种在游标改变成字典取key

if data:

book=xlwt.Workbook()#没有处理表头

sheet=book.add_sheet('sheet')

for index,key in enumerate(data[0]):#表头写到数据库里去

sheet.write(0,index,key)

for row,item in enumerate(data,1):#行的逻辑从第一行开始写 内容写进数据库

for col,value in enumerate(item.values()):#列的逻辑

sheet.write(row,col,value)

book.save(name+'.xls')

print('导出完成')

else:

print('表中无数据,无法导出')

else:

print('表不存在')

思维导图这样这样分析

封装数据库和写extel的方法文件并且起名字为tools,记住导入tools文件要先将这个文件的为文件夹手动变成环境变量

import pymysql,traceback,xlwt

#封装连接数据库和写进extel的操作

MYSQL_INFO={

'host' :'118.24.3.40',

'user' : 'jxz',

'password' :'123456', # 字符串

'db':'jxz',

'port':3306, # int类型}

'host':'118.24.3.40',

'user':'jxz',

'password':'123456', # 字符串

'db':'jxz',

'port':3306} # int类型

def execute_sql(sql):

coon = pymysql.connect(**MYSQL_INFO)

cur = coon.cursor(pymysql.cursors.DictCursor) # 建立游标,仓库管理员

try:

cur.execute(sql)#执行sql语句

except:

print('sql语句不正确')

traceback.print_exc()#打印报错信息强制打印

else:#正确了执行这条

return cur.fetchall()

finally:#走不走都执行这个命令

coon.close()

cur.close()

def write(name,data):

book = xlwt.Workbook() # 没有处理表头

sheet = book.add_sheet('sheet1')

for index, key in enumerate(data[0]):#写表头

sheet.write(0, index, key)

for row, item in enumerate(data, 1): # 行的逻辑从第一行开始写

for col, value in enumerate(item.values()): # 列的逻辑

sheet.write(row, col, value)

book.save(name + '.xls')

# print('导出完成')

写一个总函数的入口去调用

#发邮件

#mysql

#异常处理

#操作extel

import pymysql ,xlwt,tools

def main():

table_name=input('输入你要传入的表名:').strip()

table_exist_sql="SELECT table_name FROM information_schema.TABLES WHERE table_name ='%s';"%table_name

if tools.execute_sql(table_exist_sql):

query_sql = 'select * from %s;'%table_name

data=tools.execute_sql(query_sql)

if data:

tools.write(table_name,data)

print('导出完成')

else:

print('表里没有数据')

else:

print('表不存在')

main()

为什么要这样写的,为了是节省代码,操作方便,这种写代码的方式,工作中会经常用到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值