数据库和Excel是公司会计人员的办公工具之二,在日常工作中需要用到导入导出其中的数据库和Excel数据,然而过程复杂繁琐,还浪费时间,有没有方法可以快速实现,当然有,这就需要我们万能的Python。只需三行代码就能搞定!
1、数据库导入到Excel
首先我们建立一个数据库例子,里面是包含各个部门的信息,如图所示。
在写Python代码前,我们需要导入SQL Alchemy库(Python中的ORM工具),全称为Object Relational Mapping(对象关系映射)。它的作用是可以将你的代码从底层数据库及其相关的SQL特性中抽象出来,特点是操纵Python对象而不是SQL查询。
代码如下:
from sqlalchemy import create_engine
import pandas as pd
# 创建数据库连接
engine = create_engine('mysql+pymysql://root:123456@localhost/datename')
# 读取mysql数据
db = pd.read_sql(sql='select * from hong.department', con=engine)
# 导出数据到excel
db.to_excel('部门数据.xlsx')
需要注意的是,第三行代码,是指我的MySQL用户名是root,密码是123456,datename是指数据库名称。
执行该段代码,将成功写入本地的Excel文件,具体如下:
2、Excel导入到数据库
代码如下:
from sqlalchemy import create_engine
import pandas as pd
# 创建数据库连接
engine = create_engine('mysql+pymysql://root:123456@localhost/datename')
# 读取xlsx文件
df = pd.read_excel('模拟数据.xlsx')
# 导入到mysql数据库
df.to_sql(name='test_data', con=engine, index=False, if_exists='replace')
执行该段代码完成后返回MySQL,会发现datename数据库新增一个名为“test_data”表。
这两个代码的具体思路如下:
从数据库向excel导入数据:
①用sqlalchemy创建数据库连接
②用pandas的read_sql读取数据库的数据
③用pandas的to_csv把数据存入csv文件
从excel向数据库导入数据:
①用sqlalchemy创建数据库连接
②用pandas的read_csv读取csv的数据
③用pandas的to_sql把数据存入数据库a