在工作表之间切换

Switching between worksheets

我正在尝试从 csv 创建一个 xlsx 文件。此 csv 中的每一行都包含属性 'ATR'。许多行可以具有相同的属性 'ATR',例如 'x'、'y' 等

所以我想做的是逐行浏览 csv 文件并将它们写入此 xlsx 文件。如果没有名称作为属性值 'ATR' 的工作表,请创建它并在其中写入此行。如果已经有此工作表,请将行写入此工作表。

def temp_file_to_xlsx():
    wb = xlsxwriter.Workbook('export.xlsx')

    with open('export/export.csv') as f:
        r=-1
        for row in f:
            r+=1
            data = {}
            splitted_row = row.split('::')
            for column in splitted_row:
                splitted_column = column.split('.:.')
                data[splitted_column[0]]=splitted_column[1]

            ws = wb.add_worksheet(data['ATR']) # IT SAYS THAT THERE IS ALREADY WORKSHEET WITH THIS NAME SO I WANT TO WRITE IT THERE
            attributes = data.keys()
            for c in xrange(len(attributes)):
                try:
                    ws.write(c,r,data[attributes[c]])
                except:
                    ws.write(c,r,'-')
        wb.close()

这可能吗?如果可能,怎么做?

您需要记下您创建的所有工作表并重新使用它们。 例如,在函数的开头,创建一个字典:

sheets = {}

然后替换行:

ws = wb.add_worksheet(data['ATR'])

来自

if not sheets.has_key(data['ATR']):
    sheets[data['ATR']] = wb.add_worksheet(data['ATR'])
ws = sheets[data['ATR']]

因此保留所有以前创建的工作表并重复使用它们。