输出一个excel,其中有一个单元格的数据要换行。
list中间加‘\n’不会换行,会直接显示‘\n’字符。
记住一个原则,str中的’\n’是能换行的。
想办法把list转为str即可。
原代码
import pandas as pd
out_list = []
data_list = []
data_list.append('one:' + str('111') + '\n' + "two:" + str('222') + '\n')
data_list.append('one:' + str('333') + '\n' + "two:" + str('444') + '\n')
row = ['Zhangsan', data_list]
out_list.append(row)
title = ['name', 'id']
df = pd.DataFrame(out_list, columns=title)
writer = pd.ExcelWriter('./tmp.xlsx')
df.to_excel(writer, sheet_name='Sheet1', index=False, header=False)
writer.save()
以上的代码本来是data_list中有两个str,str中有‘\n’,然后将data_list添加到row中,最后row添加到out_list里。(逻辑如此,不必追究为什么要嵌套list,业务场景需要,冗余代码已去除)
以下是修改后的代码:
import pandas as pd
out_list = []
data_list = []
data_list.append('one:' + str('111') + '\n' + "two:" + str('222') + '\n')
data_list.append('one:' + str('333') + '\n' + "two:" + str('444') + '\n')
str_data = ''.join(data_list)
row = ['Zhangsan', str_data]
out_list.append(row)
title = ['name', 'id']
df = pd.DataFrame(out_list, columns=title)
writer = pd.ExcelWriter('./tmp.xlsx')
df.to_excel(writer, sheet_name='Sheet1', index=False, header=False)
writer.save()
修改的部分就两行:
str_data = ''.join(data_list)
row = ['Zhangsan', str_data]
把嵌套的那层list想办法改为了str去实现换行操作。
解决!