Bootstrap

excel导入数据库,处理格式不规范问题

excel导入数据库可以说是个很常规的操作,很多种办法,也很简单。我们要解决的不是如何导入,而是要解决导入中出现的问题。

我们来看看有哪些问题:

1、数字列中混有文本,比如这一列,大部分是1,2,3这种数字,中意来一个“张三”。这样的列,在导入数据库时,就会出错,导致数据导入失败。处理的办法有两个,一是用excel公式找到这一列的非数字值,替换成空的。这个办法比较麻烦。二是将这一列对应的字段改为文本类型,这样就可以导入了。

2、数字中有“以文本格式存放的数字”,如图

这个错误如果是数据多了,你很难发现。这样的数据是导不进数据库的,因为数据库字段是数值类型,这个“4”是文本。这个问题就麻烦了,会导致你的数据是错误的,而且你还没发现。

3、日期格式问题,excel中可能有一些日期格式并不符合数据库日期的定义。这样导进数据库就会失去这一个字段的日期类型。

4、超大excel表格的导入,一般的工具对于单文件超过300MB的excel文件导入就会非常吃力,很多都会导入不成功。

针对上面的问题,hpctb提供了直接导入的办法。它自动检测excel各列的类型,根据第一行来判断这一列是什么类型,自动创建表。节约资源,按一次1000行,分批导入数据。在导入过得中,如果发现这一列的值与第一行不符合,会自动修改这个字段为字符串类型,保证这一列的值能完全导入数据库。支持pgsql、mysql、mssql、oracle、sqlite。

在上一章我们介绍了pgsql的快速导入办法,遗憾的是在rust中并不能直接使用。同样mssql、oracle的快速导入办法,在rust中也不能直接使用。但是我们还是通过rust调用动态库的办法,用上了这些数据库最快的批量导入技术。

;