PANDAS / EXCEL:在调用dataframe.to_excel()时,将Alt-Enter / char(10



我有一个我想写给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

最新更新