excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Python!Excel与数据库联动查询的桥梁

01 前言

本篇很简单,但很实用,是我在工作中频繁使用的代码,超简单!小白看过来!

02 需求

根据Excel中的ID,提取数据库中此ID对应的数据,如果是两个Excel直接VLOOKUP即可,如果是在两个数据库中,只需要左连接即可,但是现在一个是在Excel中一个是在数据库中:

①要么都导进数据库进行左连接(可行,但麻烦)

②要么都导到Excel中VLOOKUP(不可行,数据库数据相当庞大,Excel完全吃不消)

③利用中间工具,也就是我今天要分享的代码

03 第三方工具介绍

我平时使用的第三方软件,是免费的finebi,powerbi应该也可以,将表导入bi,利用SQL读取数据,然后通过左连接匹配,再导出(平时会用这种方法,代码少简便易操作,但是finebi非常耗内存,因为给其他部门做的可视化报表需要使用他实时更新数据,所以无法承担临时查询的工作任务)

所以想要利用python代码来查询:①通过代码根据路径识别Excel内容,②SQL查询获取数据库数据,③联合查询,得到结果,④数据写入Excel;

步骤和前几种方法都一样,只是Python操作简单,代码简单,效率超高,速度极快。

直接上代码

代码编辑版

#①只需要两个库,pandas和pymssql,pandas处理数据必备库,pymssql是用来访问连接sql server,如果是mysql需要使用pymysql

import pandas as pd

import pymssql

#②数据库登陆连接的信息,其中charset='cp936',避免中文乱码

con=pymssql.connect(server=’ip+端口’, user='用户名', password='密码', database='数据库名称',charset='cp936')

#③下边为简单的甩sql 查询代码,这里三个引号可以允许写多行代码

sql="""SELECT distinct

cast(ltrim(rtrim([MeterNo]) ) as varchar) as '??'

,[Caliber]

FROM 数据库"""

#④使用pandas读取sql查询的数据

sql_table=pd.read_sql(sql,con)

#⑤pandas根据excel位置读取excel内容

origine_table=pd.read_excel(r"D:\数据文件\12、根据??查口径\待审核录入toPC20211019.xlsx",dtype={"Meter_id":str})

#⑥将excel和数据库查询的数据左连接

df=pd.merge(origine_table,sql_table,left_on="Meter_id",right_on="??",how="left")

df=pd.DataFrame(df,columns=["Meter_id","Caliber"])

#⑦将查询到的数据导到特定位置中,大功告成

df.to_excel(r"D:\数据文件\12、根据??查口径\处理.xlsx",index=None)

print("end")

第三方软件虽然操作简单,拖拖拽拽就可以,但是太卡了,体验感太差了,如果你的电脑配置高,当我没说,Python这时候真的很给力,小白建议收藏,以后会用到,大神请略过。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接