Python 如何阻止Excel使用XlsxWriter以科学记数法显示数字?
我使用pandas将数据导出到XLSX,pandas反过来使用Python 如何阻止Excel使用XlsxWriter以科学记数法显示数字?,python,pandas,xlsxwriter,Python,Pandas,Xlsxwriter,我使用pandas将数据导出到XLSX,pandas反过来使用XlsxWriter。我已经尝试过我找到的格式选项(例如,float\u格式,尽管根据来源,它似乎是错误的答案),但我找不到任何阻止Excel用科学记数法解释数字的东西 例如,如果我写入0.000000000001,Excel中的基础单元格值为0.000000000001,但显示值为1E-12。我知道我可以将数字写成字符串,但我希望Excel中的值是数字。您不能阻止Excel以其认为合适的任何格式显示未格式化的数字。保证格式的唯一方法
XlsxWriter
。我已经尝试过我找到的格式选项(例如,float\u格式
,尽管根据来源,它似乎是错误的答案),但我找不到任何阻止Excel用科学记数法解释数字的东西
例如,如果我写入
0.000000000001
,Excel中的基础单元格值为0.000000000001
,但显示值为1E-12
。我知道我可以将数字写成字符串,但我希望Excel中的值是数字。您不能阻止Excel以其认为合适的任何格式显示未格式化的数字。保证格式的唯一方法是为数据指定数字格式
不幸的是,目前在XlsxWriter中无法做到这一点,因此,在熊猫中也无法做到这一点
类似这样的功能已在上,但可能在一段时间内无法使用
作为一种解决方法,我建议获取对底层工作簿和工作表的引用,并覆盖您希望使用来自Pandas dataframe和XlsxWriter格式的相同数据格式化的任何单元格。稍后我将用一个例子来更新如何做到这一点
免责声明:我编写了XlsxWriter和Pandas/XlsxWriter集成代码。这里的问题实际上与XlsxWriter的限制有关,而不是熊猫。在write()方法中指定时,只需格式化数字即可。例如:
import xlsxwriter
wb = xlsxwriter.Workbook('myfile.xlsx')
ws = wb.add_worksheet('testme')
ws.write('A1', '%s' %123232323232323232435454546565)
wb.close()
您可以设置数字的长度,然后使用如下代码:
import xlsxwriter
wb = xlsxwriter.Workbook('Test.xlsx')
ws = wb.add_worksheet('Num')
cell_format = wb.add_format({'num_format': '0.00000000000000'})
ws.write('A1', 0.000000000001, cell_format)
wb.close()
你需要更改excel中的单元格格式,我想问的是如何使用pandas/XlsxWriter本身更改格式,或者这是不可能的。通过与我的一位同事的对话,我的理解是其他语言的库支持这一点。理想情况下,用户根本不应该看到科学符号,而应该在打开文件后进行手动更改。谢谢!这是我需要的确认。我不太明白你提出的解决方法,所以我会等到你提供了示例后才接受你的答案。