使用xlwt还是openpyxl

4 投票
2 回答
10827 浏览
提问于 2025-04-17 22:07

我需要一些关于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)

撰写回答