如何用openpyxl设置Excel列保留6位小数精度?
解决DataFrame导出Excel后保留6位小数的问题
直接用openpyxl手动定义数值格式即可,步骤如下:
- 先把DataFrame导出到Excel文件,指定openpyxl作为引擎
- 加载导出的工作簿,自定义6位小数的格式代码
- 给目标列的单元格应用这个格式
完整代码示例
import pandas as pd from openpyxl import load_workbook from openpyxl.styles import numbers # 示例DataFrame df = pd.DataFrame({'精度测试列': [11.123456, 22.789012, 33.012345]}) # 导出Excel,指定openpyxl引擎 df.to_excel('precision_test.xlsx', index=False, engine='openpyxl') # 加载工作簿和工作表 wb = load_workbook('precision_test.xlsx') ws = wb.active # 定义6位小数的自定义格式:整数部分至少1位,小数部分固定6位 six_decimal_format = numbers.NumberFormat(format_code='0.000000') # 给目标列应用格式(这里假设数值在B列,跳过表头行) # 可根据实际列名/列号调整,比如ws['B'][1:]表示B列从第2行开始的所有单元格 for cell in ws['B'][1:]: cell.number_format = six_decimal_format # 保存修改后的文件 wb.save('precision_test.xlsx')
格式代码说明
0.000000:强制显示6位小数,即使末尾是0也会保留(比如11.12会显示为11.120000)- 如果想要仅显示有效小数(末尾0自动隐藏),可以改用格式代码
0.######
内容的提问来源于stack exchange,提问作者dndschultz
相关产品推荐
相关产品推荐

