如何使用Python复制Excel文件并将所有数据格式统一设置为文本
Python实现Excel全单元格强制转文本格式、完整保留原始数据
前置依赖安装
打开终端/命令提示符,执行以下命令安装需要的第三方库:pip install pandas openpyxl
实现代码
核心逻辑是读取阶段就禁止自动类型推断,所有内容按字符串读取,写入阶段强制把所有单元格的数字格式设为文本类型,从根源避免Excel自动识别格式导致的内容丢失、变空值问题。
import pandas as pd # 替换为你自己的文件路径 INPUT_FILE = "你的原始Excel文件.xlsx" OUTPUT_FILE = "全文本格式输出.xlsx" # 读取时强制所有列按字符串类型加载,不自动推断格式,不把空值转成NaN df = pd.read_excel( INPUT_FILE, dtype=str, keep_default_na=False ) # 写入文件时统一设置单元格格式为文本 with pd.ExcelWriter(OUTPUT_FILE, engine="openpyxl") as writer: df.to_excel(writer, index=False) # 遍历所有工作表、所有单元格,强制设置为文本格式 for ws in writer.book.worksheets: for row in ws.iter_rows(): for cell in row: cell.number_format = "@" if cell.value is not None: cell.value = str(cell.value) print(f"处理完成,文件已保存至:{OUTPUT_FILE}")
注意事项
- Windows系统复制文件路径后,建议在路径字符串前加
r,比如r"C:\Documents\数据.xlsx",避免反斜杠转义导致路径报错。 - 代码会自动处理文件内的所有工作表,不需要额外指定工作表名。
- 处理后的文件所有单元格均为纯文本格式,导入数据表时不会出现字母数字混合内容被识别为数字、导入后变空值的问题,内容和原文件完全一致。
内容的提问来源于stack exchange,提问作者Anshul Dubey
相关产品推荐
相关产品推荐

