美文网首页Python
python实现excel数据与mysql数据库互通有无

python实现excel数据与mysql数据库互通有无

作者: Python集中营 | 来源:发表于2022-05-16 20:38 被阅读0次
    file

    【阅读全文】

    python在制作一些小工具上本身就有着得天独厚的优势,大多数非标准库的应用只需要进行简单的安装即可使用。

    比如:使用python将excel中的数据导入到mysql数据库表中,或是将mysql数据库表中的数据直接导出为excel都只需要简单的几行代码就可以完成,假如使用Java来做这件事强那可就有些复杂了呢。

    话不多说,接下来直接进入正题...

    这里使用两个python的非标准库来操作,一个是我们比较熟悉的pandas非标准库,使用它来完成excel相关的数据操作。

    另外一个则是sqlalchemy非标准库,使用它来完成对mysql数据库表的相关数据操作。

    使用pip的方式将这两个非标准库安装好,下面是安装命令:

    pip install sqlalchemy
    
    pip install pandas
    

    准备好以后,先来编写一个函数mysql_to_excel将数据从mysql数据库表中导出到excel的数据操作。

    from sqlalchemy import create_engine
    
    import pandas as pd
    
    def mysql_to_excel():
        '''
        将mysql数据导出到excel数据表中
        :return:
        '''
        # 使用create_engine函数创建数据库连接,其中数据库的用户名和密码分别是root/root,数据库名称为test
        engine = create_engine('mysql+pymysql://root:root@localhost/test')
        # 使用sql语句读取data表中的所有数据
        data_frame = pd.read_sql(sql='select * from test.data', con=engine)
        # 将sql查询出来的数据导出到excel数据表中
        data_frame.to_excel('data.xlsx')
    

    可以发现,pandas非标准库提供了read_sql函数来读取数据,并且返回的数据类型是DataFrame数据类型。最后,将DataFrame的数据直接保存到excel中,主逻辑的实现只用了三行代码就完成了,这就是python的魅力。

    随后,再来编写一下函数excel_to_mysql将数据从excel中直接导出到数据库表中,为了保证下面函数的独立性,于是我把用到的库又导入了一遍。

    from sqlalchemy import create_engine
    
    import pandas as pd
    
    def excel_to_mysql():
        # 使用create_engine函数创建数据库连接,其中数据库的用户名和密码分别是root/root,数据库名称为test
        engine = create_engine('mysql+pymysql://root:211314@localhost/test')
        # 使用pandas非标准库提供的read_excel函数将data.xlsx文件中的数据全部读取出来
        data_frame = pd.read_excel('data.xlsx')
        # 将DataFrame格式的数据通过to_sql函数保存到数据库中,这个时候它会自动创建一个数据库表,也就是data表
        data_frame.to_sql(name='data', con=engine, index=False, if_exists='replace')
    

    在导入数据库表的时候是DataFrame数据对象直接提供了to_sql函数进行数据的插入操作,连sql语句都不用写。这个DataFrame对象的操作还真是强大呢,它是excel数据分析、数据提取中永远的神。

    最后,感谢大家的阅读,我会不断学习努力更新出更好的干货~

    【往期精彩】

    python 实现超快窗口截图,自动获取当前活动窗口并展示截图...

    怎么用python做一个解压缩小工具,以后再也不用下载各种格式的解压缩软件了...

    python中最简单的turtle绘图:奥运五环!

    知识汇总:python办公自动化应该学习哪些内容?

    python多线程同步售票系统解决思路...

    相关文章

      网友评论

        本文标题:python实现excel数据与mysql数据库互通有无

        本文链接:https://www.haomeiwen.com/subject/xcwwurtx.html