我正在使用熊猫通过python读取和写入excel文件(xlsx文件,使用openpyxl)。我的部分数据是看起来像数字的文本。例如,在原始的excel文件中,我有一个单元格

123456789012345

并以python中的文本形式很好地导入。但是,如果我再次写入excel文件,则输出单元格的格式为“常规”,并显示为

1.23e14

所以我的问题是:有没有办法设置熊猫的数字格式?我想将其设置为“ @”,即openpyxl.styles.NumberFormat.FORMAT_TEXT

不幸的是,pandas.ExcelWriter的文档还不够高级(即不存在)。

谢谢您的帮助。

最佳答案

我认为在最坏的情况下,您可以直接操纵细胞。我没有安装Excel,但也许您可以检查是否可行。

In [67]: df=pd.DataFrame ([123456789012345])

In [68]: writer = pd.ExcelWriter ('e.xlsx', engine='openpyxl')

In [69]: df.to_excel (writer, 'sheet1')

In [70]: ws = writer.sheets['sheet1']

In [71]: ws['A1'].style.number_format.format_code='@'

In [72]: writer.save ()

In [73]: pd.read_excel ('e.xlsx')
Out[73]:
                 0
0  123456789012345

07-28 04:06
查看更多