[英]using xlwt, insert sql select query result to a cell in xls
I am trying to write the result of a sql select query to a xls file. 我正在尝试将sql选择查询的结果写入xls文件。 Below is the code: 下面是代码:
RowNum = 8
sql = """select * from #table"""
cursor = self.db_conn.cursor()
cursor.execute(sql)
rb = open_workbook(settings.FILE_NAME,formatting_info=True)
wb = copy(rb)
sheet1 = wb.get_sheet('Sheet 1')
for row in cursor.fetchall():
sheet1.write(RowNum, 0, row) # row, column, value
RowNum = RowNum + 1
wb.save(settings.FILE_NAME_New)
But I get the following error: 但是我收到以下错误:
sheet1.write(RowNum, 0, row) # row, column, value
File "python-3.4.3\lib\xlwt\Worksheet.py", line 1088, in write
self.row(r).write(c, label, style)
File "python-3.4.3\lib\xlwt\Row.py", line 254, in write
raise Exception("Unexpected data type %r" % type(label))
Exception: Unexpected data type <class 'pyodbc.Row'>
Where did I go wrong? 我哪里做错了?
row
is not a literal value, it is a pyodbc.Row
. row
不是文字值,而是pyodbc.Row
。 Depending on the value of which column of the row you want, use this: 根据所需行的哪一列的值,使用以下命令:
column_number = 0
sheet1.write(RowNum, 0, row[column_number]) # row, column, value
You need to mention the column_number, You are trying to write the pyodbc object on the file rather than a particular column. 您需要提及column_number,您正在尝试在文件而不是特定列上写入pyodbc对象。
RowNum = 8
sql = """select * from #table"""
cursor = self.db_conn.cursor()
cursor.execute(sql)
rb = open_workbook(settings.FILE_NAME,formatting_info=True)
wb = copy(rb)
sheet1 = wb.get_sheet('Sheet 1')
column_no = 0
for row in cursor.fetchall():
sheet1.write(RowNum, 0, row[column_no]) # change this line
RowNum = RowNum + 1
wb.save(settings.FILE_NAME_New)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.