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

1、问题描述及原因

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

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

2、解决方法

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

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

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

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

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

相关推荐
罗政7 小时前
WPS Excel快速进行跨表数据合并
excel·wps
RQ_ghylls18 小时前
2.excel每3行计算一个均值,将高于均值的单元格设置背景红色
算法·均值算法·word·excel
飞梦工作室18 小时前
突破 pandas 瓶颈:实时读写 Excel 与超透视汇总函数的双维解决方案
python·excel·pandas
专注VB编程开发20年1 天前
Excel软件界面美化-WEBUI-webbrowser内核
css·excel·vba·webui
葡萄城技术团队1 天前
纯前端驱动:在线 Excel 工具的技术革新与实践方案
前端·excel
我叫汪枫1 天前
Python 办公自动化入门:玩转 Excel 与 Word
python·word·excel
缺点内向2 天前
Java: 在 Excel 中插入、提取或删除文本框
java·开发语言·excel
傻啦嘿哟2 天前
Python将Excel工作表转换为PDF:从入门到实战
python·pdf·excel
罗政2 天前
WPS Excel快速进行同表内的单元格差异对比(高亮)
excel·wps
默默提升实验室2 天前
Excel 数据透视表一键批量合并居中单元格(失效处理办法)
excel