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

使用readxl包read_excel导入xls,设col_types为text仍丢前导零怎么办?

解决read_excel导入丢失前导零的问题

方法1:先修正Excel文件的单元格格式

如果原始xls文件中INN列的单元格被设置为数字格式,Excel底层会自动丢弃前导零存储,此时哪怕readxl指定col_types = 'text',也无法找回丢失的前导零。需要先修改源文件:

  • 打开目标xls文件,选中INN列
  • 右键选择【设置单元格格式】,切换到【数字】选项卡,选择【文本】
  • 重新输入原本带前导零的内容(或双击单元格触发格式生效),保存文件后再用原代码导入:
data = read_excel('data.xls', col_types = c('text'))

方法2:强制readxl按文本读取(不修改源文件)

尝试增大guess_max参数的值,让readxl读取更多行来判断列类型,避免因前几行无前置零而误判为数字类型:

data = read_excel('data.xls', col_types = c('text'), guess_max = 10000) # 数值可根据实际数据行数调整

方法3:导入后补全前导零(适用于固定长度的INN)

如果INN是固定长度(比如示例中的8位),可以先导入数据,再通过代码补全前导零:

# 用stringr包实现
library(stringr)
data = read_excel('data.xls')
data$INN = str_pad(data$INN, width = 8, side = 'left', pad = '0')

# 用base R实现(无需额外包)
data = read_excel('data.xls')
data$INN = sprintf("%08d", data$INN)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:57:27