使用xlwt vs openpyxl

时间:2014-03-13 12:58:11

标签: python excel openpyxl

我需要在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)

2 个答案:

答案 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

http://pythonhosted.org//openpyxl/