我需要在PYTHON中使用openpyxl的帮助。我一直非常成功地使用xlwt,但现在我有一些包含超过65,000行的文件(在MySQL Workbench中)。我知道我可以创建一个CSV文件,但XLSX是首选输出。我能够使用openpyxl创建一个工作簿,但我没有成功将MySQL数据放入表中。使用xlwt的程序的主要部分非常简单(见下文)。我似乎无法弄清楚如何使用openpyxl做同样的事情。我尝试了许多不同的组合和解决方案。我只是在“for x in result:”之后卡住了。
file_dest = "c:\home\test.xls"
result = dest.execute("select a, b, c, d from filea")
for x in result:
rw = rw + 1
sheet1 = book.add.sheet("Sheet 1")
row1 = sheet1.row(rw)
row1.write(1, x[0])
row1.write(1, x[1])
row1.write(1, x[2])
row1.write(1, x[3])
book.save(file_dest)
答案 0 :(得分:2)
这是使用append()的一个很好的用例:
在当前工作表的底部附加一组值。
如果是列表:从第一个开始按顺序添加所有值 柱
import openpyxl
file_dest = "test.xlsx"
workbook = openpyxl.Workbook()
worksheet = workbook.get_active_sheet()
result = dest.execute("select a, b, c, d from filea")
for x in result:
worksheet.append(list(x))
workbook.save(file_dest)
答案 1 :(得分:1)
一个小例子:
wb = Workbook(encoding='utf-8')
ws = wb.worksheets[0]
row = 2
ws.title = "Report"
ws.cell('A1').value = "Value"
ws.cell('B1').value = "Note"
for item in results:
ws.cell('A%d' % (row)).value = item[0]
ws.cell('B%d' % (row)).value = item[1]
row += 1