我尝试从xlsx
创建csv
文件。此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()
是否有可能,如果可以,怎么样?
答案 0 :(得分:2)
您需要记下您创建的所有工作表并重新使用它们。 例如,在函数的开头,创建一个字典:
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']]
因此保留所有先前创建的工作表并重复使用它们。