Есть ли способ загрузить DATA INFILE (импорт) xlsx файл в таблицу базы данных MySQL - PullRequest
5 голосов
/ 02 ноября 2011

Я знаю, что это много обсуждается, но я не могу найти решение, как это сделать.

Мне нужно импортировать файл Excel (xls / xlsx) в мою таблицу базы данных. Это кнопка, которая выполняет это, и команда, которая выполняется, выглядит так:

 string cmdText = "LOAD DATA INFILE 'importTest4MoreMore.csv' INTO TABLE management FIELDS TERMINATED BY ',';";

Отлично работает. Но мне нужно импортировать файл Excel, а не CSV. Насколько я знаю, команда LOAD DATA не поддерживает двоичные файлы, которые есть в xls. Так в чем же решение? Пожалуйста, помогите

Большое спасибо

Пепис

Ответы [ 4 ]

12 голосов
/ 02 ноября 2011

.xls никогда не будет импортирован напрямую в MySQL.это составной файл OLE, что означает, что его внутренняя структура не понятна простым смертным (или даже Биллу Гейтсу)..xlsx - это просто файл .zip, содержащий несколько файлов .xml / xslt / etc.файлы.Вероятно, вы можете извлечь соответствующий XML-файл, содержащий фактические данные электронной таблицы, но опять-таки - он вряд ли будет в формате, который напрямую импортируется загрузочным инфилом MySQL.

Самое простое решение - экспортировать .xls /xlsx в .csv.

4 голосов
/ 24 ноября 2015

Как импортировать файл «xlsx» в MySQL:

1 / Откройте файл «.xlsx» Office Excel, нажмите кнопку «Сохранить как» в меню и выберите

 'CSV (MS-DOS) (*.csv)' 

из списка «Сохранить как тип».Наконец, нажмите кнопку «Сохранить».

2 / Скопируйте или загрузите файл .csv на установленный сервер MySQL (путь к каталогу, например: / root / someDirectory / на серверах Linux)

3 / Войдите в вашу базу данных:

mysql -u root -pSomePassword

4 / Создайте и используйте базу данных назначения:

use db1

5 / Создайте таблицу MySQL в вашей базе данных назначения (например, 'db1') с помощьюстолбцы, подобные приведенным выше .csv файла.

6 / Выполните следующую команду:

LOAD DATA INFILE '/root/someDirectory/file1.csv' INTO TABLE `Table1` FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

Обратите внимание, что опция 'IGNORE 1 LINES' говорит MySQL игнорировать первыйстрока файла .csv.Так что это только для файлов .xlsx с 1 столбцом заголовка.Вы можете удалить эту опцию.

4 голосов
/ 02 ноября 2011

Вы можете загрузить файлы xls или xlsx с помощью инструмента Импорт данных (в формате MS Excel или MS Excel 2007) в dbForge Studio for MySQL . Этот инструмент открывает файлы Excel напрямую, интерфейс COM не используется; и командная строка поддерживается.

1 голос
/ 05 сентября 2014

Взгляните на sqlizer.io . Вы можете загружать файлы XLSX, давать ему имя листа и диапазон ячеек, и он будет генерировать оператор CREATE TABLE и набор операторов INSERT для импорта всех ваших данных.

...