七行代码,excel存入数据库sqlite3

七行代码把excel存入数据库sqlite3顺便写了可逆过程,就是把数据库db文件再转为excel
本人博客地址 :https://blog.csdn.net/hq606
作者 :hq606

创作不易转载请注明链接和出处

前面写了一篇关于把excel存入sqlit的方法。文章地址附上:
https://blog.csdn.net/hq606/article/details/105534832
可以看得出,(全靠xlrd方法)参考了大量文章,自己还修改了半天,还是不通用,每次使用还得临时修改。
今天分享另外一个办法,超级简化。
平时做爬虫取得数据经常写入excel,但是excel在调用的时候,不是很方便,需要写较多的代码。
以前见过pandas可以把excel直接存入excel。但是还没研究过能不能存入sqlit里面。因为里面参数配置不同,网上搜了一下也是很少,以为是用pandas不能连接sqlit。
但是好奇心一直不能平静,而且自己正在学习阶段,为啥不尝试一下呢。

#实现代码如下

##方法 pandas excel to  sqlit3
def exlTOsql():
    import pandas as pd
    from sqlalchemy import create_engine
    import sqlite3
    file =r"C:\Users\mayn\Desktop\学生管理系统\19年10月11日高二第一次月考成绩_理科(4).xlsm"
    df = pd.read_excel(file)
    con=sqlite3.connect('mydata.db')
    df.to_sql('mytable02',con=con,if_exists='replace',index=False)
exlTOsql()

看到代码是不是觉得,非常的Python ,真正的Python风格。

由于过程太快,实在是不放心,下面又读取数据库,发现真的写入了
于是我又写了逆过程,把db数据,又输出到excel代码如下

##方法 pandas  sqlit3 to excel  
def sqlTOexl():
    #查询数据库 再重新转为excel
    import sqlite3
    import pandas as pd
    conn = sqlite3.connect('mydata.db')
    sql="select * from mytable02"
    cur=conn.cursor()
    cur.execute(sql)
    results =cur.fetchall()
    #print(results)
    conn.close()

    #把数据库数据转入csv
    rs=pd.DataFrame(results,columns=('id','姓名','班级','总分','班排名','校排名','语文',' 排名','数学','排名 ','外语',' 排名','物理','排名 ','化学','排名 ','生物',' 排名',' ',' ')) # rs=pd.DataFrame(res,columns=('id','姓名','总分','排名','排名','语文',' 排名','数学','排名 ','外语',' 排名','物理','排名 ','化学','排名 ','生物',' 排名',' ',' '))
    print(rs)
    rs.to_csv('file_name.csv',index=True,header=True,encoding='gbk')

    #把csv转为excel
    #pd.DataFrame(rs).to_excel("abc.xlsx",sheet_name="123",index=False,header=True)  #这种办法 把DataFrame直接转为excel不需要csv
    #csv = pd.read_csv('file_name.csv', encoding='utf-8')
    #csv.to_excel('abc.xlsx', sheet_name='123')  #这种办法 把csv直接转为excel
sqlTOexl()

最后一点思考,Python真的是一种胶水语言,它的灵活,简洁,使你专注于程序的性能,逻辑,设计,让人更多的把精力放在思考解决问题上,而代码尽量简化,因为有大量的轮子可用,平时编程也是,尽量做模块化,函数或者类。使得自己代码延续性,复用性更好,才能进阶到高级。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬码工琪老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值