在工作表之间切换

我试图从csv创build一个xlsx文件。 此csv中的每行都包含属性“ATR”。 许多行可以具有相同的属性“ATR”,例如“x”,“y”等。

所以我想要做的就是一个接一个的把csv文件行写入这个xlsx文件。 如果没有名称为属性“ATR”的值的工作表,则创build它并在此处写入此行。 它已经有了这个工作表,把这行写入到这个工作表中。

 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() 

有可能,如果是的话,怎么样?

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

 sheets = {} 

然后replace这一行:

 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']] 

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