xlsx 文件的列名未保留在转换后的 csvs 中
Column names of xlsx file are not retained in the converted csvs
我正在从多页 xlsx 文件中获取数据并将数据存储在单独的 csv 文件中。 xslx 中所有工作表的第一行存储在第一个 csv 中,所有工作表的第二行存储在第二个 csv 中,依此类推。为此,我编写了以下有效的代码:
xls = xlrd.open_workbook(r'Smallys ORDER.xlsx', on_demand=True)
df_list = []
names = xls.sheet_names()
#print(names)
#print('-'*80)
names.remove('EVENT')
#print(names)
for i in range(191):
rows = []
for name in names:
count = 0
prod = pd.read_excel('Smallys ORDER.xlsx', name, index_col=None)
#print(prod)
try:
item = prod.iloc[i]
print(item)
rows.append(item)
#items = item.concat(item)
#print(items)
#prod.to_csv(item + '.csv', encoding='utf-8', index=False)
#print('-'*80)
except:
print('Row finished !!!')
writer = csv.writer(open('/home/hp/products/' + 'prod['+str(i)+'].csv', 'w'))
writer.writerows(rows)
此代码不会在 csvs 中保留 xlsx 文件的列名(所有工作表都相同)。
使用 csv.writer
时必须明确写出列名。使用最后 sheet:
中的列名就足够了
writer = csv.writer(open('/home/hp/products/' + 'prod['+str(i)+'].csv', 'w'))
writer.writerow(prod.columns.tolist())
writer.writerows(rows)
我正在从多页 xlsx 文件中获取数据并将数据存储在单独的 csv 文件中。 xslx 中所有工作表的第一行存储在第一个 csv 中,所有工作表的第二行存储在第二个 csv 中,依此类推。为此,我编写了以下有效的代码:
xls = xlrd.open_workbook(r'Smallys ORDER.xlsx', on_demand=True)
df_list = []
names = xls.sheet_names()
#print(names)
#print('-'*80)
names.remove('EVENT')
#print(names)
for i in range(191):
rows = []
for name in names:
count = 0
prod = pd.read_excel('Smallys ORDER.xlsx', name, index_col=None)
#print(prod)
try:
item = prod.iloc[i]
print(item)
rows.append(item)
#items = item.concat(item)
#print(items)
#prod.to_csv(item + '.csv', encoding='utf-8', index=False)
#print('-'*80)
except:
print('Row finished !!!')
writer = csv.writer(open('/home/hp/products/' + 'prod['+str(i)+'].csv', 'w'))
writer.writerows(rows)
此代码不会在 csvs 中保留 xlsx 文件的列名(所有工作表都相同)。
使用 csv.writer
时必须明确写出列名。使用最后 sheet:
writer = csv.writer(open('/home/hp/products/' + 'prod['+str(i)+'].csv', 'w'))
writer.writerow(prod.columns.tolist())
writer.writerows(rows)