You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas导出Excel时长数字字符串列显示科学计数法如何展示完整值

解决方法

Excel默认会将超过11位的纯数字内容识别为数值类型,自动转为科学计数法展示,即便你提前在pandas里转了字符串,xlsxwriter导出时仍可能默认触发数值识别逻辑,两种可直接落地的修改方案如下:

方案1:通过xlsxwriter设置单元格文本格式(推荐)

不需要修改原始DataFrame数据,仅通过设置Excel列格式实现,不会额外添加冗余字符:

import pandas as pd

EUROC= pd.read_excel(f'{NewFilePath}{NewFile}', sheet_name="EUROC")   
# 保留转字符串的逻辑,避免原始数值精度丢失
EUROC['case_id']=EUROC['case_id'].astype(str)
FileFinal='Test Prueba.xlsx'
full_path_file = f'{ICSPath}{FileFinal}'

with pd.ExcelWriter(full_path_file, engine='xlsxwriter') as writer:
    EUROC.to_excel(writer, sheet_name='EUROC', index=False)
    # 获取工作簿和工作表对象
    workbook = writer.book
    worksheet = writer.sheets['EUROC']
    # 定义文本格式
    text_format = workbook.add_format({'num_format': '@'})
    # 获取case_id列的索引位置
    case_id_col = EUROC.columns.get_loc('case_id')
    # 设置对应列的格式:列范围、列宽、格式
    worksheet.set_column(case_id_col, case_id_col, 18, text_format)

方案2:给字符串添加强制文本前缀

操作更简单,在字符串前添加Excel识别为文本标记的单引号,Excel中不会显示该前缀,仅强制内容按文本展示:

EUROC= pd.read_excel(f'{NewFilePath}{NewFile}', sheet_name="EUROC")   
# 转字符串的同时加单引号前缀
EUROC['case_id']= "'" + EUROC['case_id'].astype(str)
FileFinal='Test Prueba.xlsx'
full_path_file = f'{ICSPath}{FileFinal}'
writer = pd.ExcelWriter(full_path_file, engine='xlsxwriter')
EUROC.to_excel(writer, sheet_name='EUROC', index=False)
writer.save()

内容的提问来源于stack exchange,提问作者Webb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 23:57:00