前言
需求是对一些人工导出的excel,做成程序自动化执行。解放双手,哈哈。
环境准备
Python 3.9.13
pip install cx_Oracle
pip install pandas 如果提示其他附加包没装的安装提示进行安装,我的环境以已经安装过了
Oracle数据库客户端
连接oracle需要借助于oracle client ,注意要跟Python的版本一样,如果是64位的oracle client 也要是64位的,需要拷贝5个文件到Python的运行环境,如果是Pycharmd就是放到项目的目录下 venv\Lib\site-packages
- oci.dll
- ocijdbc11.dll
- ociw32.dll
- oraocci11.dll
- oraociei11.dll
Oracle Client 64位我会放到文章的末尾,供大家快速下载
上代码
import pandas as pd
import cx_Oracle
try:
con = cx_Oracle.connect('username/password@ip:port/sid')
cursor = con.cursor()
cursor.execute("select id as \"主键ID\",od_name as \"O单名称\",type as \"类型\",year_month as \"年月\" from OD_OUTSIDE_INTERFACE_STAT where rownum = 1")
# 获取列名
col = [x[0] for x in cursor.description]
# 如果不想用列明作为excel表头,可以自定义,参考下面示例
# col= ['主键ID2', 'O单名称2', '类型2', '年月2']
df = pd.DataFrame(cursor.fetchall(), columns = col)
df.to_excel("C:\\Users\\Administrator\\Desktop\\测试1.xlsx", index=False)
except cx_Oracle.DatabaseError as e:
print("异常")
finally:
if cursor:
cursor.close()
if con:
con.close()
总结复盘
主要是在连接oracle上花费了很长时间,必须借助于Oracle Client进行处理,因为我本地windows没安装Oracle Client,借助了一个外部免安装的dll来处理的。Mac版本的还没试过,后面我会再更新一起Mac版本环境下如何连接。
pandas 这个工具比较好用,读取excel和写入excel都很方便,目前对它的API还不是很精通。