一、sqlite导入excel
1、打开要导入的excel --- 另存为(2007版点击左上角OFFICE图标即可找到) --- 保存类型:CSV类型
(提示什么不兼容什么的,一律点确定。)
2、打开sqlite expert ,选择建好的数据库文件(或者是导入的已存在的db文件,或者是自己新建一个.db数据库文件).
右击文件名---选择最后一个import text file(CSV,TSV)
3、(如果没有建过和这个excel名相同的表)右边Destination选择第一项new table新建这个表,名字为xxx 。
如果选第二项,先确保你的数据库中有其他表(或者自己新建),代表你可以将excel表中数据插入到已有的表中。(请确保列名,即字段名最好一样。)
当然你也可以在右上方的那个"..."图标,浏览找到你要添加的csv文件.
4、最后点击左下角start即可开始导入数据. 完成后,左边会出现刚才新建的表xxx,点击屏幕中间靠右的DATA栏,即可看到导入的数据。(下图代表提示导入了多少行用了多久)
二、可能会报的错误。
情况一: field is missing (即:字段名丢失)
原因是你的excel表格第一行加了字段(即列名),如什么age name type或者其他中文.
我的解决方法:
删掉CSV第一行的所有字段,在sqlite expert里直接用SQL语句新建字段,点击SQL,输入以下语句来建立字段,按Execute SQ按钮。(代表建立一个表Persons ,有4个字段名,类型,可输入字符数)可见想要的字段已经建立成功,因此只要按照第一个步骤导入CVS数据到表中即可。
情况二:数据太多会导不全 (天生bug)
由于有8W多条数据,每次只能导1W多条,还找不到原因。从早上弄到下午四点多,真是很恼火。记得一个同事半个月前跟我说过要分几次导,我才想起来。在这里要真心#感谢同事李胜# ,帮了我大忙。
我的解决方法:
第一次导也许只有1W多条数据,然后你把你的CSV文件打开,把已经导进的数据删除,保存CSV文件,继续用sqlite expert进行导入,下一次可能是8k条,可能是1W条,重复你的步骤,直至完全导入到表中。(即CSV文件不要加第一行字段,直接导到已存在的表中,导入一次,查看DATA栏导了多少数据。然后把CSV中导入过的删掉继续重复.)
三、(同一个.db数据库)把一个表的数据,插入到另一个表中。
按照上面的方法,把你的excel另存为CSV文件(见第一个步骤)
直接在sqlite expert的SQL模块中添加下面两行SQL语句(即将表B的数据添加到表A后面)
//语句
insert into 表A
select * from 表B
//语句
需要注意的是,这里的作用主要是适用于表B(没有第一行字段),直接添加到表A。(因此有了字段,成为了插入表A中的数据)
而且如果因为字段名不一样,插入数据会报错。(比如把[123]表的数据插入到Persons表)
个人经验所谈,希望能帮助大家解决同样的问题。
### Writer :JiaYi < thankyou! > ###