#!/usr/bin/python
# -*- coding: utf-8 -*-
import psycopg2
import openpyxl
from datetime import datetime
def getData():
conn = psycopg2.connect(database='contracts', user='exxxxxx', password='123456', host='127.0.0.1', port='5432')
cur = conn.cursor()
tableName = 'contracts'
commandFindColumn = "select COLUMN_NAME from information_schema.COLUMNS where table_name='%s' " % (tableName)
cur.execute(commandFindColumn)
columnRows = cur.fetchall()
'''导出outcome的全部'''
commandFindRecord = "select * from %s " % (tableName)
cur.execute(commandFindRecord)
recordRows = cur.fetchall()
conn.commit()
cur.close()
conn.close()
return columnRows, recordRows
def writeDataToExcel(name):
columnRows, recordRows = getData()
print(columnRows)
print(len(columnRows))
print(recordRows)
print(len(recordRows))
wb = openpyxl.Workbook()
wb.create_sheet(name, 0)
sheet = wb[name]
today = datetime.today() # 获取当前日期,得到一个datetime对象如:(2019, 7, 2, 23, 12, 23, 424000)
today_date = datetime.date(today) # 将获取到的datetime对象仅取日期如:2019-7-2
# 当列数超过26时,添加AA,AB,AC...
myAlphbet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X', 'Y', 'Z','AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK']
for i in range(len(columnRows)):
loc = myAlphbet[i] + str(1)
sheet[loc] = columnRows[i][0]
for i in range(len(recordRows)):
for j in range(len(recordRows[i])):
loc = myAlphbet[j] + str(i + 2)
sheet[loc] = recordRows[i][j]
wb.save(name + '_' + str(today_date) + '.xlsx') # 以传递的name+当前日期作为excel名称保存
if __name__ == '__main__':
writeDataToExcel("outcome")
print("succeed")