import cx_Oracle
import xlwt
def MakeExcel(table_namess):
table_names = table_namess.split(".", 1)
table_name = str(table_names[1])
ower = str(table_names[0])
print(table_name, ower)
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Input', 'w+b')
worksheet1 = workbook.add_sheet('BaseLine', 'w+b')
worksheet2 = workbook.add_sheet('OutPut', 'w+b')
worksheet3 = workbook.add_sheet('Result', 'w+b')
conn = cx_Oracle.connect('username/username@127.0.0.1:1521/ORCL')
cursor = conn.cursor()
cursor1 = conn.cursor()
sql = "SELECT column_name,data_type,data_length, table_name FROM " \
"all_tab_columns where owner='%s' and table_name = '%s'" % (ower, table_name)
sql1 = "SELECT column_name||'@'||data_type||'@'||data_length, table_name FROM " \
"all_tab_columns where owner='SCOTT' and table_name = '%s'" % table_name
result = cursor.execute(sql)
result1 = cursor1.execute(sql1)
data = cursor.fetchall()
data1 = cursor1.fetchall()
nr = len(data) # 数据多少行循环写入
print(data)
# 获取字段名
title = [i[0] for i in result.description]
title1 = [i[0] for i in result1.description]
# title2 = [table_name+'表中的字段名称']
# title3 = [table_name]
# title = title1+title2+title3
print(title)
for c in range(len(title)):
worksheet.write(0, c, title[c])
for r in range(nr):
for c in range(len(data[r])):
if data[r][c]: # 值不为空时写入,空值不写入
worksheet.write(r + 1, c, data[r][c])
worksheet.write(r + 1, 4, 'Contain')
worksheet.write(r + 1, 5, table_name + '表中的字段' + data[r][0])
for c in range(len(title1)):
worksheet1.write(0, c, title1[c])
for r in range(nr):
for c in range(len(data1[r])):
if data1[r][c]: # 值不为空时写入,空值不写入
worksheet1.write(r + 1, c, data1[r][c])
worksheet1.write(r + 1, 4, 'Contain')
workbook.save("E:\PythonExcel\%s.xls" % table_namess)
conn.close()
# MakeExcel("scott.dept")
table_namesss = ['SCOTT.DEPT', 'SCOTT.EMP', 'SCOTT.SALGRADE']
for table_namess in (table_namesss):
MakeExcel(table_namess)
python连接Oracle查询数据保存到excel中
最新推荐文章于 2022-05-05 15:39:23 发布