使用python以两位小数格式化excel数字
Posted
技术标签:
【中文标题】使用python以两位小数格式化excel数字【英文标题】:Format excel numbers at two decimals with python 【发布时间】:2021-01-15 09:57:44 【问题描述】:我想在 Excel 导出中将数字格式化为小数点后 2 位,但仅用于查看,并将原始值保留在后面,如图所示,数字显示为小数点后两位,但是当您单击要显示的单元格时整体价值。我使用了 XlsxWriter 和 add_format,它以 2 位小数格式化,但不保留原始值。有人可以建议如何完成以及是否可能吗?
excel中的图片示例:
【问题讨论】:
【参考方案1】:我用过 XlsxWriter 和 add_format,它的格式是 2 位小数,但不保留原始值。
这不可能。 XlsxWriter 不会以任何方式截断它处理的数字,除了使用%.16G
以与 Excel 相同的方式格式化它们。
例如:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
my_format = workbook.add_format('num_format': '0.00')
worksheet.write(0, 0, 29.159573953, my_format)
workbook.close()
输出:
如您所见,完整的数字显示在公式栏中。
【讨论】:
我正在尝试编写数据帧,我使用了以下代码:format1 = workbook.add_format('num_format': '#,##0.00') worksheet.set_column('U:AC',18, format1)
也:df.to_excel(writer, sheet_name="ABC", startrow=4, startcol= 3, float_format="%.2f")
结果与我发布的第一张图片一样。
您需要将该代码放入问题中。但是,看起来熊猫 df.to_excel()
中的 float_format="%.2f"
正在截断浮点数。把它排除在外,你应该得到你想要的结果。以上是关于使用python以两位小数格式化excel数字的主要内容,如果未能解决你的问题,请参考以下文章