Как импортировать файл Excel в базу данных MySQL - PullRequest
70 голосов
/ 21 августа 2009

Может ли кто-нибудь объяснить, как импортировать файл Microsoft Excel в базу данных MySQL?

Например, моя таблица Excel выглядит так:

Country   |   Amount   |   Qty
----------------------------------
America   |   93       |   0.60

Greece    |   9377     |   0.80

Australia |   9375     |   0.80

Ответы [ 10 ]

91 голосов
/ 22 сентября 2014

Существует простой онлайн-инструмент, который может сделать это sqlizer.io .

Screenshot from sqlizer.com

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

44 голосов
/ 21 августа 2009
  1. Экспорт в какой-либо текстовый формат. Самой простой будет, вероятно, версия с разделителями табуляции, но CSV также может работать.

  2. Используйте возможность загрузки данных. Смотри http://dev.mysql.com/doc/refman/5.1/en/load-data.html

  3. Посмотрите на полпути вниз, так как это даст хороший пример для данных, разделенных табуляцией:

    ПОЛЯ, ПРЕКРАЩАЕМЫЕ '\ t', ЗАКРЫТЫЕ '', ЗАКРЫТЫЕ '\'

  4. Проверьте ваши данные. Иногда при цитировании или экранировании возникают проблемы, и вам необходимо настроить источник, команду импорта - или может быть проще выполнить постобработку с помощью SQL.

29 голосов
/ 24 марта 2017

Ниже приведен еще один способ импорта данных электронных таблиц в базу данных MySQL, не требующий дополнительного программного обеспечения. Предположим, вы хотите импортировать таблицу Excel в таблицу sales базы данных MySQL с именем mydatabase.

.
  1. Выберите соответствующие ячейки:

    enter image description here

  2. Вставить в Мистер. Конвертер данных и выберите вывод MySQL:

    enter image description here

  3. Измените имя таблицы и определения столбцов в соответствии с вашими требованиями в сгенерированном выводе:

CREATE TABLE sales (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  Country VARCHAR(255),
  Amount INT,
  Qty FLOAT
);
INSERT INTO sales
  (Country,Amount,Qty)
VALUES
  ('America',93,0.60),
  ('Greece',9377,0.80),
  ('Australia',9375,0.80);
  1. Если вы используете MySQL Workbench или уже вошли в систему mysql из командной строки, то вы можете выполнить сгенерированные операторы SQL непосредственно из шага 3. В противном случае вставьте код в текстовый файл (например, import.sql) и выполните эту команду из оболочки Unix:

    mysql mydatabase < import.sql

    Другие способы импорта из файла SQL можно найти в этом ответе переполнения стека .

27 голосов
/ 30 августа 2014

Существует несколько способов импортировать файл Excel в базу данных MySQL с различной степенью сложности и успеха.

  1. Excel2MySQL или Navicat утилиты. Полное раскрытие, я автор Excel2MySQL. Эти 2 утилиты не являются бесплатными, но они являются самым простым вариантом и имеют наименьшее количество ограничений. Они также включают дополнительные функции, помогающие импортировать данные Excel в MySQL. Например, Excel2MySQL автоматически создает вашу таблицу и автоматически оптимизирует типы данных поля, такие как даты, время, значения с плавающей запятой и т. Д. Если вы спешите или не можете использовать другие параметры для работы с вашими данными, тогда эти утилиты могут удовлетворить ваши потребности.

    screenshot of Excel2MySQL

  2. INFILE LOAD DATA : Эта популярная опция, пожалуй, самая техническая и требует некоторого понимания выполнения команд MySQL. Вы должны вручную создать свою таблицу перед загрузкой и использовать типы полей VARCHAR соответствующего размера. Поэтому типы данных вашего поля не оптимизированы. LOAD DATA INFILE имеет проблемы с импортом больших файлов, размер которых превышает 'max_allowed_packet'. Особое внимание требуется, чтобы избежать проблем при импорте специальных символов и иностранных символов Юникода. Вот недавний пример, который я использовал для импорта файла CSV с именем test.csv.

    enter image description here

  3. phpMyAdmin : сначала выберите базу данных, затем перейдите на вкладку «Импорт». phpMyAdmin автоматически создаст вашу таблицу и изменит размер полей VARCHAR, но не оптимизирует типы полей. phpMyAdmin не может импортировать большие файлы, размер которых превышает «max_allowed_packet».

    enter image description here

  4. MySQL для Excel : это бесплатная надстройка Excel от Oracle. Эта опция немного утомительна, потому что она использует мастер, а импорт работает медленно и глючит с большими файлами, но это может быть хорошим вариантом для маленьких файлов с данными VARCHAR. Поля не оптимизированы.

    enter image description here

2 голосов
/ 06 октября 2014

Не уверен, что у вас есть все эти настройки, но я использую PHP и MYSQL. Поэтому я использую PHP класс PHPExcel. Он принимает файл практически любого формата, xls, xlsx, cvs, ..., а затем позволяет читать и / или вставлять.

Итак, в итоге я загружаю excel в объект phpexcel, а затем перебираю все строки. Исходя из того, что я хочу, я пишу простую команду вставки SQL, чтобы вставить данные из файла Excel в мою таблицу.

На внешнем интерфейсе это небольшая работа, но это всего лишь настройка некоторых примеров кода. Но когда вы наберете его, внести изменения в импорт просто и быстро.

1 голос
/ 26 мая 2015

лучший и самый простой способ - использовать приложение «MySQL для Excel», которое является бесплатным приложением от Oracle. это приложение добавило плагин для Excel для экспорта и импорта данных в MySQL. Вы можете скачать это с здесь

0 голосов
/ 05 октября 2018

Шаг 1 Создайте свой CSV-файл

Шаг 2 войдите на свой сервер MySQL

     mysql -uroot -pyourpassword 

Шаг 3 загрузить CSV-файл

     load data local infile '//home/my-sys/my-excel.csv' into table my_tables fields terminated by ',' enclosed by '"' (Country, Amount,Qty);
0 голосов
/ 16 декабря 2014

Вы можете использовать DocChow , очень интуитивно понятный GIU для импорта Excel в MySQL, и он бесплатный на большинстве распространенных платформ (включая Linux).

В особенности, если вас интересует дата, типы данных datetime, DocChow легко обрабатывает типы данных. Если вы работаете с несколькими электронными таблицами Excel, которые хотите импортировать в одну таблицу MySQL, DocChow делает грязную работу.

0 голосов
/ 12 ноября 2014

При использовании текстовых файлов для импорта данных у меня были проблемы с кавычками и тем, как Excel форматировал числа. Например, моя конфигурация Excel использовала запятую в качестве десятичного разделителя вместо точки.

Теперь я использую Microsoft Access 2010, чтобы открыть свою таблицу MySql как связанную таблицу. Там я могу просто скопировать и вставить ячейки из Excel в Access.

Для этого сначала установите драйвер ODBC MySql и создайте ODBC-соединение . Затем в разделе «Доступ» на вкладке «Внешние данные» откройте диалоговое окно «База данных ODBC» и создайте ссылку на любую таблицу, используя соединение ODBC.

0 голосов
/ 12 августа 2014

Для пошагового примера импорта Excel 2007 в MySQL с правильной кодировкой (UTF-8) найдите этот комментарий:

"Автор: Майк Лэйрд, 13 октября 2010 г., 00:50"

в следующем URL:

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

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