Python 基于Oracle查询将标题行写入Excel
我正试图找到一种有效的方法,将头行从Oracle表写入xls文件,而不是每次都这样做,因为我的一些结果有50-70列Python 基于Oracle查询将标题行写入Excel,python,excel,oracle,python-2.7,cx-oracle,Python,Excel,Oracle,Python 2.7,Cx Oracle,我正试图找到一种有效的方法,将头行从Oracle表写入xls文件,而不是每次都这样做,因为我的一些结果有50-70列 headings1 = ['Column 1', 'Column 2', etc] rowx = 0 for colx, value in enumerate(headings1): sheet1.write(rowx,colx,value) 我当前的代码将只写入从第2行开始的数据行,因为我一直在手动创建一个Excel文件模板,其中预定义了所有图纸名称和标题行,但创
headings1 = ['Column 1', 'Column 2', etc]
rowx = 0
for colx, value in enumerate(headings1):
sheet1.write(rowx,colx,value)
我当前的代码将只写入从第2行开始的数据行,因为我一直在手动创建一个Excel文件模板,其中预定义了所有图纸名称和标题行,但创建模板需要大量的工作,我希望去掉该部分,并让它自动将第1行写入我的标题
Import CX_Oracle
Import xlwt
Import xlutils.copy
Import xlrd
SQL = "SELECT Column1, Column2, etc from TABLE"
cursor = con.cursor()
cursor.execute(SQL)
wb_read = xlrd.open_workbook('Template.xls',formatting_info=True)
wb_read.Visible = 1
wb_write = copy(wb_read)
sheet0 = wb_write.get_sheet(0)
for i, row in enumerate(cursor):
for j, col in enumerate(row):
sheet1.write(i+1,j,col) #Starts pasting the data at row 2
book.save('Output.xls')
当前文件包括5-7个我必须在同一工作簿中写入数据的工作表,以及使用的5-7个游标,这是第一个游标的示例 PEP 249允许一个
这将返回一个元组列表,其中每个元组的第一个元素是列名:
db=cx\u Oracle.connect('schema/pw@db/db')
>>>curs=db.cursor()
>>>sql=“从双通道选择*”
>>>curs.execute(sql)
>>>列名称=curs.description
>>>列名
[('DUMMY',1,1,0,0,1)]
>>>
为了演示(非常)稍微复杂的情况,我创建了以下表格:
SQL>创建表tmp_测试(col1编号,col2 varchar2(10));
表已创建。
然后,由您决定如何使用它:
sql=“从tmp\U测试中选择*
>>>curs.execute(sql)
>>>描述
[('COL1',127,22,0,-127,1),('COL2',10,1
0, 0, 0, 1)]
>>>“,”.join(c[0]表示游标说明中的c)
“COL1,COL2”
>>>
在开始枚举光标值之前,只需写这一行。我需要做完全相同的事情。已通过以下代码实现:
# Write header row
for c, col in enumerate(cursor.description):
ws.write(0, c, col[0])
然后,我使用您已经在使用的simular for循环编写数据记录。感谢Ben的输入。我一直在按照您的建议研究PEP249,但我仍然无法找到正确的代码,将curs.description放入csv文件第一行的每一列中。你知道怎么写吗?