Импортировать CSV (таблицу Excel) в SQLite? - PullRequest
0 голосов
/ 24 октября 2019

Я безуспешно пытаюсь импортировать таблицу Excel в базу данных SQLite.

Файл Excel cvs ( excel.cvs ) выглядит так:

Column 1,Column 2,Column 3,Column 4
text 11,text 12,text 13,text 14
text 21,text 22,text 23,text 24
text 31,text 32,text 33,text 34
...
...

И символ спецификации ÿþ появляется в начале потока данных, что означает, что текстовый файл закодирован в формате UTF-16 с прямым порядком байтов.

В SQLite я импортирую файл Excel в новую таблицу, но это не удается ивыводит:

sqlite3> .mode csv
sqlite3> .separator ,
sqlite3> .import excel.cvs mytable
CREATE TABLE mytable(...) failed: duplicate column name:

И если я предварительно создаю mytable , а затем импортирую excel.cvs , все поля данных остаются пустыми:

sqlite3> CREATE TABLE mytable(a,b,c,d);
sqlite3> .import excel.cvs mytable
sqlite3> SELECT * FROM mytable;
"","","",""
"","","",""
"","","",""
...

Я много исследовал в Интернете и ТАК, но не могу найти решение. Есть идеи, что я делаю не так? Спасибо.

SQLite 3.30.1

excel.csv: текст с прямым порядком байтов UTF-16 Unicode, с ограничителями строки CRLF

1 Ответ

0 голосов
/ 25 октября 2019

Как предложил мне пользователь Shawn, я смог импортировать cvs, предварительно преобразовав его в кодировку UTF-8.

Поскольку я использую Linux, я сделал:

$ iconv -f UTF-16LE -t UTF-8 excel.cvs > excel_uft8.cvs

Для получения дополнительной информации: iconv (1) - man-страница Linux

Спасибо, Шон:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...