为 python 排序表 xlsxwriter

Sorting tables xlsxwriter for python

我有一个计算,它使用 xlsxwriter 创建一个 excel 电子表格来显示结果。知道结果后对 table 进行排序会很有用。

一种解决方案是在python中创建一个单独的数据结构,并对数据结构进行排序,稍后使用xlsx,但它不是很优雅,需要大量数据类型处理。

我找不到对 xlsx 模块中的结构进行排序的方法。 有人可以帮助该模块的内部数据结构吗?在将其写入磁盘之前,可以对其进行排序吗? 另一种解决方案是重新打开文件,对内容进行排序,然后再次关闭它?

    import xlsxwriter
    workbook=xlsxwriter("Trial.xlsx")
    worksheet=workbook.add_worksheet("first")
    worksheet.write_number(0,1,2)
    worksheet.write_number(0,2,1)

    ...worksheet.sort

Can anybody help with the internal data structure of that module? Can that be sorted, before writing it to disk.

我是模块的作者,简短的回答是不能或不应该这样做。

可以在运行时对 Excel 中的工作表数据进行排序,但这不是文件规范的一部分,因此无法使用 XlsxWriter 完成。

One solution would be to create a separate Data structure in python, and sort the data structure, and use xlsx later, but it is not very elegant, requires a lot of data type handling.

这对我来说是一个合理的解决方案。

您应该先处理数据,然后再将其写入工作簿,因为在电子表格中一次操作数据并不容易。

以下示例将写入一列未排序的数字:

import xlsxwriter

with xlsxwriter.Workbook("Trial.xlsx") as workbook:
    worksheet = workbook.add_worksheet("first")

    data = [5, 2, 7, 3, 8, 1]

    for rowy, value in enumerate(data):
        worksheet.write_number(rowy, 0, value)      # use column 0

但是如果你先将数据排序如下:

import xlsxwriter

with xlsxwriter.Workbook("Trial.xlsx") as workbook:
    worksheet = workbook.add_worksheet("first")

    data = sorted([5, 2, 7, 3, 8, 1])

    for rowy, value in enumerate(data):
        worksheet.write_number(rowy, 0, value)      # use column 0

你会得到类似的东西: