如何使用XlsxWriter阻止Excel以科学计数法显示数字?

时间:2014-06-06 04:38:02

标签: python pandas xlsxwriter

我正在使用pandas将数据导出到XLSX,而pandas又使用XlsxWriter。我已经尝试了我发现的格式化选项(例如float_format,尽管它看起来像是基于源的错误答案)但是我找不到任何阻止Excel解释数字的内容科学计数法。

例如,如果我写0.000000000001,Excel中的基础单元格值为0.000000000001,但显示值为1E-12。我知道我可以将数字写成字符串,但我希望Excel中的值为数字。

2 个答案:

答案 0 :(得分:4)

您无法阻止Excel以其认为合适的任何格式显示未格式化的数字。保证格式的唯一方法是为数据指定数字格式。

不幸的是,目前无法在XlsxWriter和/或Pandas中执行此操作。

这样的功能在TODO list上,但它可能暂时不可用。

作为一种解决方法,我建议获取对底层工作簿和工作表的引用,并使用Pandas数据帧和XlsxWriter格式中的相同数据覆盖您希望格式化的任何单元格。稍后我将以一个如何操作的示例进行更新。

免责声明:我编写了XlsxWriter和Pandas / XlsxWriter集成代码。这里的问题与XlsxWriter限制有关,而不是Pandas。

答案 1 :(得分:0)

在write()方法中指定数字时,只需格式化数字即可。例如:

import xlsxwriter

wb = xlsxwriter.Workbook('myfile.xlsx')
ws = wb.add_worksheet('testme')
ws.write('A1', '%s' %123232323232323232435454546565)
wb.close()