Kettle导入Excel文件进数据库时,数值发生错误的一种原因

1、问题描述及原因

在使用kettle读取Excel文件、并导入数据库时,需要读取Excel中的数值、日期(或日期+时间、时间)、文本这三种类型的列进来,发现读取其中的数值时,读取的数字就不对。

经调查,原因是,在"导出数据为Excel文件"时,Excel的数值格式,只能接受15位的有效数字,否则,其余的替换为0;而"使用Kettle读取Excel"时,超过17位的数值,读取时后四位会异常。如下图所示:

2、解决方法

当我们将数据库的数值列,导出Excel文件时,应该注意是否超过15位,超过则转为文本格式,才不会发生失真、丢失信息。

另外,当我们读取存在上文这样的超过15位的数值列的Excel文件时,注意先要将整个列转为文本格式,一般有三种方式,最简单的是"分列"功能,WPS也支持该功能,如下图所示(怎样批量将数值型数字转换成文本型数字? - 知乎)。

因为Excel中,本身不支持一键将超长的数值列,整个转为文本格式,所以就算调整了格式,也必须逐行点击一下。

3、日期或时间列的Kettle读取

类似的,日期、日期+时间、时间列的kettle读取,也往往会有转化问题,建议一律按照文本格式来读取,最后按照文本格式导入数据库,后续在数据库中利用相应的函数去转换格式。

相关推荐
尤鸟倦3 天前
OneNote table复制到Excel遇到的各种问题
excel
2501_930707784 天前
使用C#代码使用条件格式为 Excel 隔行设置颜色
c#·excel
leihefeng4 天前
PX04-用 Python 读 Excel 画折线图,还能直接插回 Excel 文件
python·excel
yanlaifan4 天前
Excel中指定单元格不能输入内容的方法
excel
babe小鑫5 天前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
Data-Miner5 天前
商品ABC分类分析怎么用AI做?脚本复用+图表可编辑的一次完整实操
人工智能·数据分析·excel
E-iceblue8 天前
Excel 列转行/行列转换全指南:从 4 种常见解法到 Python 批量自动化
python·excel·python库·spire.xls
Data-Miner8 天前
AI处理数据的脚本复用与逻辑复用有什么区别?哪种方式更能沉淀工作成果
数据分析·excel
福兮说8 天前
在浏览器里写一个“够用就好“的 Excel 公式求值器
前端·javascript·excel·编译原理
慧都小妮子9 天前
标签打印如何减少手工抄数?用Bartender 直连 Excel 批量打印
excel·bartender·条码打印·标签打印软件·数据驱动打印·工业打印机