如何使用openpyxl将MySQL表数据导出到现有Excel工作表中的新行

时间:2018-08-09 04:08:39

标签: python mysql excel openpyxl

我是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的了解不足,无法自定义任何类似的答案在这里能够产生我想要的结果。

我非常感谢您的帮助!谢谢!!

0 个答案:

没有答案