我是python和openpyxl库的新手。
我要实现的是将MySQL数据库中的表导出到excel文件。但是,我有一个正在用作模板的excel工作簿,我需要能够将数据结果添加到模板中现有工作表的新行中。
我已经花了几个小时在stackoverflow上寻找答案,但是我一直无法弄清楚该怎么做。我的代码当前将数据导出到现有工作簿中的新工作表,但是将其添加到现有工作表中只会显示我的数据的列名。这是我目前拥有的:
from flask import Flask, send_file, url_for
import mysql.connector
from openpyxl import Workbook, load_workbook
app = Flask(__name__)
cnx = mysql.connector.connect(user='', password='',
database='', host='')
cursor = cnx.cursor()
@app.route('/download_excel')
def download_excel():
# fetch the data we need from the db
query = 'SELECT firstname, lastname, address, city, state, zip, phone, email FROM job_application WHERE exported = 0;'
cursor.execute(query)
results = cursor.fetchall()
wb = load_workbook('template.xlsx')
ws = wb.create_sheet("Exported", 0)
file_name = 'applicants.xlsx'
ws.append(cursor.column_names)
for row in results:
ws.append(row)
wb.save(file_name)
return send_file(file_name, as_attachment=True)
当我尝试将数据添加到“申请人”表时,唯一要打印的是来自数据库的表列名称。
我知道问题的一部分是因为我要附加列名,然后遍历结果。就像我说的那样,我已经在stackoverflow上花费了数小时来寻找解决方案,但是我没有找到我真正需要的解决方案,并且我对openpyxl或python的了解不足,无法自定义任何类似的答案在这里能够产生我想要的结果。
我非常感谢您的帮助!谢谢!!