Как импортировать файл excel в базу данных MySQL
Кто-нибудь может объяснить, как импортировать файл Microsoft Excel в базу данных MySQL?
Например, моя таблица Excel выглядит следующим образом:
Country | Amount | Qty
----------------------------------
America | 93 | 0.60
Greece | 9377 | 0.80
Australia | 9375 | 0.80
Ответы
Ответ 1
-
Экспортируйте его в некоторый текстовый формат. Самым простым будет, вероятно, версия с разделителями табуляции, но CSV также может работать.
-
Используйте возможности загрузки данных. См. http://dev.mysql.com/doc/refman/5.1/en/load-data.html
-
Посмотрите на полпути вниз по странице, так как это даст хороший пример для данных, разделенных вкладкой:
ПОЛЯ, ПРОВЕРЯЕМЫЕ '\ t', ВКЛЮЧЕНЫ '' ЭФФЕКТИВНЫМ '\'
-
Проверьте свои данные. Иногда цитирование или экранирование имеет проблемы, и вам нужно настроить исходный код, команду импорта, или просто проще выполнить пост-обработку через SQL.
Ответ 2
Существует простой онлайн-инструмент, который может это сделать, называется sqlizer.io.
![Screenshot from sqlizer.com]()
Вы загружаете в него файл XLSX, вводите имя листа и диапазон ячеек, и он генерирует инструкцию CREATE TABLE и несколько операторов INSERT для импорта всех ваших данных в базу данных MySQL.
(Отказ от ответственности: я помогаю запустить SQLizer)
Ответ 3
Ниже приведен еще один способ импорта данных таблиц в базу данных MySQL, которая не полагается на какое-либо дополнительное программное обеспечение. Предположим, вы хотите импортировать таблицу Excel в таблицу sales
базы данных MySQL с именем mydatabase
.
-
Выберите соответствующие ячейки:
![введите описание изображения здесь]()
-
Вставить в Mr. Data Converter и выберите вывод в формате MySQL:
![введите описание изображения здесь]()
-
Измените определения имен таблиц и столбцов в соответствии с вашими требованиями в сгенерированном выпуске:
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);
-
Если вы используете MySQL Workbench или уже вошли в mysql
из командной строки, вы можете выполнить сгенерированный SQL непосредственно из шага 3. В противном случае вставьте код в текстовый файл (например, import.sql
) и выполните эту команду из оболочки Unix:
mysql mydatabase < import.sql
Другие способы импорта из файла SQL можно найти в этом ответе на переполнение стека.
Ответ 4
На самом деле существует несколько способов импортировать файл excel в базу данных MySQL с различной степенью сложности и успеха.
-
Excel2MySQL или Navicat. Полное раскрытие, я являюсь автором Excel2MySQL. Эти 2 утилиты не являются бесплатными, но они являются самым простым вариантом и имеют наименьшие ограничения. Они также включают дополнительные функции, которые помогут импортировать данные Excel в MySQL. Например, Excel2MySQL автоматически создает вашу таблицу и автоматически оптимизирует типы данных полей, такие как даты, время, поплавки и т.д. Если вы спешите или не можете использовать другие параметры для работы с вашими данными, эти утилиты могут удовлетворить ваши потребности.
![screenshot of Excel2MySQL]()
-
LOAD DATA INFILE. Этот популярный вариант, пожалуй, самый технический и требует некоторого понимания выполнения команды MySQL. Перед загрузкой и использованием типов полей VARCHAR соответствующего размера необходимо вручную создать таблицу. Поэтому ваши полевые типы данных не оптимизированы. LOAD DATA INFILE имеет проблемы с импортом больших файлов, которые превышают размер "max_allowed_packet". Особое внимание необходимо учесть, чтобы избежать проблем с импортом специальных символов и иностранных символов в Юникоде. Вот недавний пример, который я использовал для импорта csv файла с именем test.csv.
![enter image description here]()
-
phpMyAdmin. Сначала выберите свою базу данных, затем выберите вкладку "Импорт". phpMyAdmin автоматически создаст вашу таблицу и пометит ваши поля VARCHAR, но не будет оптимизировать типы полей. У phpMyAdmin есть проблемы с импортом больших файлов, которые превышают размер "max_allowed_packet".
![enter image description here]()
-
MySQL для Excel. Это бесплатная надстройка Excel от Oracle. Этот параметр немного утомительный, поскольку он использует мастер, а импорт медленный и багги с большими файлами, но это может быть хорошим вариантом для небольших файлов с данными VARCHAR. Поля не оптимизированы.
![enter image description here]()
Ответ 5
Не уверен, что у вас есть все настройки, но для меня я использую PHP и MYSQL. Поэтому я использую PHP-класс PHPExcel. Это принимает файл почти в любом формате, xls, xlsx, cvs,... и затем позволяет читать и/или вставлять.
Итак, что я делаю, это загрузка excel в объект phpexcel, а затем цикл через все строки. Основываясь на том, что я хочу, я пишу простую команду вставки SQL, чтобы вставить данные в файл excel в мою таблицу.
На переднем конце это небольшая работа, но это просто вопрос настройки некоторых существующих примеров кода. Но когда вы его набрали при внесении изменений в импорт, это просто и быстро.
Ответ 6
лучший и самый простой способ - использовать приложение "MySQL для Excel", которое является бесплатным приложением от oracle. это приложение добавило плагин для Excel, чтобы экспортировать и импортировать данные в mysql. вы можете скачать это из здесь
Ответ 7
Для пошагового примера для импорта Excel 2007 в MySQL с правильной кодировкой (UTF-8) выполните поиск этого комментария:
"Написал Майк Лэйрд 13 октября 2010 12:50 утра
в следующем URL-адресе:
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
Ответ 8
При использовании текстовых файлов для импорта данных у меня были проблемы с кавычками и как Excel форматировал числа. Например, моя конфигурация Excel использовала запятую как десятичный разделитель вместо точки.
Теперь я использую Microsoft Access 2010, чтобы открыть таблицу MySql в качестве связанной таблицы. Там я могу просто скопировать и вставить ячейки из Excel в Access.
Для этого сначала установите MySql ODBC драйвер и создайте ODBC подключение.
Затем в доступе на вкладке "Внешние данные" откройте диалоговое окно "База данных ODBC" и соединитесь с любой таблицей, используя соединение ODBC.
Ответ 9
Вы можете использовать DocChow, очень интуитивно понятный GIU для импорта Excel в MySQL и бесплатно на большинстве распространенных платформ (включая Linux),
Более конкретно, если вас беспокоят даты, datetime datatypes, DocChow легко обрабатывать типы данных. Если вы работаете с несколькими таблицами Excel, которые хотите импортировать в одну таблицу MySQL, DocChow выполняет грязную работу.
Ответ 10
Шаг 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);
Ответ 11
Еще один полезный инструмент, в качестве замены внешнего интерфейса MySQL, это Toad для MySQL. К сожалению, больше не поддерживается Quest, но великолепной IDE для MySQL, с мастерами IMPORT и EXPORT, обслуживающими большинство типов файлов.