文档与 OCR实用指南

CSV转Excel怎么保留编号?分隔符、列类型与3行验收

CSV转Excel应先核对编码和分隔符,再按列用途选择文本、数字或日期,最后重新打开XLSX验收。本例提供3条完整记录和类型参考答案,包含前导零、17位编号、UTF-8姓名、金额0与空白,不只检查文件能否下载。

桌上的计算器、纸张与眼镜,作为表格数据导入配图
配图:Berke Citak · Unsplash License

本次修订:新增三行分号CSV、精度与日期失败输入、类型参考工作簿及导出后逐格核对流程。

先把问题解决

选择UTF-8、分号并保留首行为表头,预览应有含表头4行、4列。OrderID与Customer保持文本,Amount选数字,Day选日期。导出后应保留0007、12345678901234567、0013;金额是12.5、0、空白,而不是把3列都交给自动推断。

完整输入与答案文件分开保存

练习包的source-semicolon.csv使用UTF-8和分号。typed-import-reference.xlsx与expected-values.json是答案,bad-date.csv是故意错误的副本。三个编号均为虚构;Zoë中的ë用于辨认多字节字符是否被正确解码。

source-semicolon.csv的完整内容

OrderID;Customer;Amount;Day
0007;Zoë;12.50;2026-10-26
12345678901234567;Bo;0;2026-10-27
0013;Ada;;2026-10-27
第一行为表头,下面3条数据。第3条Amount为空,与Bo的0不同。

这篇检查分隔符与列类型;CSV本身不携带Excel单元格类型。若需要先在CSV和JSON间变换结构,可按CSV/JSON往返核对处理,再回到本流程选择类型。

先得到4列,再谈类型

  1. 打开CSV转Excel,选择source-semicolon.csv。编码选UTF-8,分隔符改为分号,保留“首行为表头”。
  2. 预览应为4行(含表头)、4列,首行分别是OrderID、Customer、Amount、Day。若整行挤在1列,先改分隔符;若Zoë乱码,回查文件真实编码。不要删除异常字符来凑出可读姓名。
  3. 确认3个编号逐字符正确后再设置列类型。预览只显示部分内容,大文件不能只看前10行就认定整批正确;本练习只有3条,可逐条验收。

工具默认列类型都是文本。它避免主动改写原文,但你仍需决定哪些列真正参与计算;编码、列边界和类型是三个独立检查。

给四列分别作类型决定,并主动试一次失败

  1. 将第3列设为数字、第4列设为日期;第1/2列保持文本。金额12.5可以设置两位小数显示12.50,显示格式与底层数值是两件事。
  2. 为理解精度保护,可临时把第1列改成数字。第3行的17位编号应被拦截,不能生成这轮有效结果;恢复文本后再处理。不要把旧下载件当作修改后的新结果。
  3. 另试bad-date.csv,第3行日期为2026-02-30,设为日期应报错。本练习已确认正确来源为2026-10-27,因此回到source-semicolon.csv重新读取和设置;真实工作要先找来源确认,不能统一改成当天日期。
本例的列类型与理由
列选择验收重点
1 OrderID文本保留0007和完整17位编号
2 Customer文本保留Zoë原始字符
3 Amount数字12.50成为数值12.5,0有效,空白仍为空白
4 Day日期YYYY-MM-DD保留真实年月日,显示样式可在接收程序另设

Microsoft的前导零和长编号说明解释了自动数字转换风险。已经丢失的编号位数不能靠改显示格式可靠恢复。

为什么长编号必须保持文本

9007199254740993超过JavaScript安全整数范围,把它当作普通数字可能改变末位。本站数字转换会拒绝精度风险,而不是悄悄替你决定编号。发生列类型错误时,先检查该列是不是标识符,再把类型改回文本。

0007是另一个问题:它即使能精确转成数字7,也失去了编号格式。账户号、商品编码与邮政编码通常不需要加减运算。若资料只剩下数字7,导入器无法知道原来应该补成0007、007还是07。

不要用外观修饰代替保留原值

问题示例

将sku设为数字,再给7套一个显示四位的格式。

修正参考

导入时保持文本0007,并核对长编号末位。

显示格式可以让一个数看起来像编号,但不等于保存了原始文本。

下载后逐格核对:3条记录、4列、三种金额状态

处理后下载XLSX,在接收软件中重新打开,并与参考文件比较值和类型。参考文件的工作表名和样式可以与工具输出不同,不要求工作簿字节一致。选中编号查看完整文字;金额列应能按数值计算,空白不能被填成0。

逐行参考答案
OrderID(文本)CustomerAmountDay
0007Zoë数值12.52026-10-26
12345678901234567Bo数值02026-10-27
0013Ada空白,待业务解释2026-10-27

本例XLSX验收

  • 共3条业务记录、4列;首行没有被误当成数据或转成日期。
  • 3个编号逐字符保留为文本,Zoë没有乱码。
  • Amount的数值12.5、数值0和空白区分明确;日期保留正确年月日。
  • 两次失败尝试都已回到可靠来源修复,并重新导出当前有效结果。

日期来源于ISO文本时应核对年月日;不同软件可能使用不同显示格式。若上游本来是JSON长编号,可另看JSON转Excel的数字原文与文本列边界。

何时先回到原始数据

当前导入限制为20MB、10万行、300列和200万个单元格,列宽不一致或解码失败会阻止继续。拆分大文件前先保留表头与完整记录,不要在引号包围的换行中间随意截断。

转换在本地浏览器处理。若还要输出JSON,先看CSV与JSON字段核对;若准备合并多份工作簿,再按列名合并与来源检查核对列含义。

常见问题

为什么换分隔符后列类型重置了?

编码和分隔符变化会重新解析源文件,列边界可能不同,因此需要重新核对并选择类型。

空白数值会自动变0吗?

本站转换保留空白,不把缺失数值补成0。零值与缺失表达不同含义,应该按来源决定。

转成XLSX后就是可信数据了吗?

不是。转换验证文件结构和类型,不能确认源记录是否完整、金额是否正确或日期是否属于真实业务。

参考资料与延伸阅读

按步骤开始处理

进入对应工具,预览处理结果,检查导出的文件。

这个主题的后续文章

沿着同一主题,继续阅读引用了本文的新文章。

继续阅读