简体   繁体   English

使用xlwt,将SQL选择查询结果插入到xls中的单元格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM