使用xlwt还是openpyxl
我需要一些关于PYTHON中openpyxl的帮助。我之前一直在用xlwt,效果不错,但现在我有一些文件(在MySQL Workbench中)包含超过65,000行数据。我知道我可以创建一个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 个回答
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/
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)