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

1、问题描述及原因

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

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

2、解决方法

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

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

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

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

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

相关推荐
Python大数据分析@1 小时前
如何用 Python xlwings库自动化操作 Excel?
python·自动化·excel
老师可可2 小时前
成绩查询系统如何制作?
经验分享·学习·小程序·excel·学习方法
yanweijie03172 小时前
Excel(WPS表格)中多列去重就用Tocol+Unique组合函数
excel·wps
Jackiejin52614 小时前
WPS表格选择性粘贴快捷键怎么使用?WPS如何给表格某一行都加上指定数字?
数据分析·excel·wps
办公解码器15 小时前
Excel怎么将八位数字设置为日期格式?
excel
gis915 小时前
批量地址解析坐标,支持WPS、EXCEL软件,支持导出SHP、GEOJSON、DXF等文件格式
excel·wps
赵庆明老师16 小时前
ASP.NET Core读取Excel文件
excel
luyun02020219 小时前
流批了,pdf批量转excel
windows·pdf·excel·figma
老师可可19 小时前
成绩发布工具使用方法,附成绩分析教程
学习·信息可视化·小程序·excel·学习方法
SamDeepThinking1 天前
处理大型excel文件的技术选型
excel