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

1、问题描述及原因

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

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

2、解决方法

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

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

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

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

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

相关推荐
LAM LAB4 天前
【VBA】Excel指定单元格范围内字体设置样式,处理导出课表单元格
excel·vba
在这habit之下4 天前
Keepalived学习总结
excel
Youngchatgpt4 天前
如何在 Excel 中使用 ChatGPT:自动化任务和编写公式
人工智能·chatgpt·自动化·excel
开开心心就好4 天前
安卓开源应用,超时提醒紧急人护独居安全
windows·决策树·计算机视觉·pdf·计算机外设·excel·动态规划
D_C_tyu4 天前
Vue3 + Element Plus | el-table 多级表头表格导出 Excel(含合并单元格、单元格居中)第二版
vue.js·elementui·excel
骆驼爱记录4 天前
WPS页码设置:第X页共Y-1页
自动化·word·excel·wps·新人首发
Cxiaomu5 天前
Python 文件解析: Excel / Word / PDF 的解析、处理、预览与下载
python·word·excel
2501_930707785 天前
如何使用C#代码从 PDF 中提取表格并另存为Excel文件
pdf·excel
pacong5 天前
B生所学EXCEL
人工智能·excel