Как импортировать файл excel в базу данных MySQL

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

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

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

Greece    |   9377     |   0.80

Australia |   9375     |   0.80

спасибо заранее.

Феро

10 ответов


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

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

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

    поля завершается '\Т' обнесенные " убежали '\'

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


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

Screenshot from sqlizer.com

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


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

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

    screenshot of Excel2MySQL

  2. ЗАГРУЗИТЬ ДАННЫЕ INFILE: этот популярный вариант, возможно, самый технический и требует некоторого понимания выполнения команды MySQL. Вы должны вручную создайте таблицу перед загрузкой и используйте типы полей VARCHAR соответствующего размера. Поэтому типы данных полей не оптимизированы. Загрузка данных INFILE имеет проблемы с импортом больших файлов, которые превышают размер "max_allowed_packet". Особое внимание необходимо, чтобы избежать проблем с импортом специальных символов и иностранных символов Юникода. Вот недавний пример, который я использовал для импорта файла csv с именем тест.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


Ниже приведен еще один метод импорта данных электронных таблиц в базу данных 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 можно найти в этот ответ переполнения стека.


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

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

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


лучший и самый простой способ-использовать приложение "MySQL for Excel", которое является бесплатным приложением от oracle. это приложение добавило плагин для excel для экспорта и импорта данных в mysql. вы можете скачать это из здесь


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

"опубликовано Майк Лэрд октября 13 2010 12: 50"

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

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


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

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

для этого сначала установить драйвер ODBC для MySQL создать ODBC для связи. Затем в access, на вкладке "внешние данные", откройте диалоговое окно" база данных ODBC " и ссылку на любую таблицу с помощью подключения ODBC.


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

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


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

Шаг 2 Войдите в свой mysql server

     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);