我有一个我想写给excel的pandas DataFrame
。对于一列,我的数据值是逗号限制的字符串,例如"val1,val2"
或"val1,val2,val3"
。当我编写该列时,我想用在Excel中按ALT-ENTER
的等效替换逗号,以便在值之间存在线断裂。因此,我的第一个示例将显示为val1
,然后显示在单元格内,然后是val2
,依此类推。您也可以通过使单元格成为公式并在每个值之间放置&"char(10)"&
来在Excel中执行此操作。
我看到如何通过通过XLSXWriter编码公式并单独编写单元格来做到这一点。但是,我希望(或懒惰)想知道是否有一种方法可以将断点直接编码到数据中,以便它们都可以通过DataFrame
上的to_excel()
进行简单的调用。
在xlsxwriter中,您可以在字符串和 text_wrap
格式属性中使用newlines将其包裹在单独的行上。请参阅格式文档的这一部分。
wrap_format = workbook.add_format({'text_wrap': True})
worksheet.write(0, 0, "Val1nval2", wrap_format)
要从熊猫做到这一点,您可以将字符串中的逗号转换为n
,然后将text_wrap
格式应用于目标电子表格的列。
在阅读答案后,我仍然必须进行一些研究,因此我想在此处发布一个完全有效的示例
df = pd.DataFrame({'Data': ['blanbla', 'blubbnblubb']})
with pd.ExcelWriter('test.xlsx', engine='xlsxwriter') as writer:
df.to_excel(writer, sheet_name='Sheet1')
workbook = writer.book
worksheet = writer.sheets['Sheet1']
cell_format = workbook.add_format({'text_wrap': True})
worksheet.set_column('A:Z', cell_format=cell_format)
特别是,我不得不弄清楚在创建格式对象后,我仍然需要将其设置在各个单元格上。
注意:您需要在执行此操作之前先进行pip install xlsxwriter
。
在这里,再次,格式类文档的链接
对我来说,这种代码正常工作:
liste=['adsf','asdfas','dasdsas','asdfsdaf']
text=''
for elem in liste:
text=text+elem+'n'
ws.Cells(1,1).Value=text