将已有的excel表格转入数据库,这是我们在开发中常见的操作和需求。理想很丰满,现实很骨感,操作起来可就不那么顺利了。
下面是你可能遇到的几种错误提示:
Error while importing data: table xxx has 3 columns but 1 values were supplied
Could not import data row number 1. The row was ignored. Problem details: table tbPrice has 3 columns but 2 values were supplied
这些错误错在哪里还真的一时无法找到其根本。我们先来看看我们是如何导出excel为csv数据的
比如,我们有这么一个表格
导出为CSV文件
现在我们用刚刚的导出的CSV文件导入到Sqlite Studio中:
首先,在sqlite中准备一个test的表,结构如下
接下来导入,注意,错误来了:
系统提示说,我们sqlite中的表test的列数比我们要导入的csv文件中的列数要多!剩余的列将被置空。什么情况?用记事本打开,看看:
完全没有问题啊,和test表列数完全一致啊!!!
问题出在哪里呢,仔细看导入的编码,我们默认了text Encoding为system
在用笔记本打开看看我们的文本是什么编码,不错,是GB2312
问题找到了,编码问题,那是不是我们更换为GB2312就可以了呢?答案是肯定的!
但为了使我们的文字的兼容性更好,我么最好将CSV转换为utf-8,导入的时候编码也选择uitf-8那样就妥妥的啦