python 如何从 xlsxwriter 移植到 xlwt

python how to port from xlsxwriter to xlwt

我想在 xlwt 中重新创建一个 xlsxwriter 程序。 我连续写有问题。有人可以帮我处理 xlwt 模块吗?我发现很多使用枚举的 xlwt 代码,但我对 xlwt 不太熟悉。我遇到的问题是,xlwt 将整个列表写为第一个单元格中的字符串,所以我最终得到一列数据。 xlsxwriter 将列表中的每个项目写入其单独的单元格中,这是我想用 xlwt 做的。如果有人能指导我正确的方向,我将不胜感激。谢谢

这是我的代码:

def xlsxwriter_res(result):
    workbook = xlsxwriter.Workbook('filename.xlsx')

    for key,value in result.items():
        worksheet = workbook.add_worksheet(key)
        row, col = 0, 0

        for line in value:
            worksheet.write_row(row, col, line) ### Writes each item in list in separate cell
            row += 1

    workbook.close()


def xlwt_res(result):
    workbook = xlwt.Workbook(encoding="utf-8")

    for key,value in result.items():
        worksheet = workbook.add_sheet(key)
        row, col = 0, 0

        for line in value:
            worksheet.write(row, col, line) ### Writes the whole list as string in one cell
            row += 1

    workbook.save('filename.xls')

试试看:

import xlwt


def xlwt_res(result):
    workbook = xlwt.Workbook(encoding="utf-8")

    for key, value in result.items():
        worksheet = workbook.add_sheet(key)
        row = 0  # we assign 'col' later instead

        for line in value:
            # we're going to iterate over the line object
            # and write directly to a cell, incrementing the column id
            for col, cell in enumerate(line):
                worksheet.write(row, col, cell)  # writes the list contents just like xlsxwriter.write_row!
            row += 1

    workbook.save('filename.xls')


xlwt_res({'one': ["just one element"], 'two': ["that's a list", "did you know it"], 'three': ["let's", "have", "3"]})

因此 xlwtxlsxwriter 产生相同的结果: