По работе иногда приходится перебрасывать данные из одного формата в другой, из одной кодировки в другую. Если говорить о данных, то экспорт таблиц из MS Excel в базу данных MS SQL Server 2005 производится на раз, причем простым копированием. Здесь товарищам из корпорации не откажешь в сноровке: взаимная интеграция своих продуктов друг в друга на высоте.
Сегодня по дороге на работу вдруг в голову пришла мысль: а что насчет MySQL? Ведь это дитя уже не маленькое, 5 версия уже не новость. Должно же быть и там нечто такое? Чтобы не делать лишнюю ручную работу, и не гонять данные через Китай по этапам? И не писать скрипты, программы для этой операции? И не искать в интернете программы с кряками?
Странно, но в поиске я натыкался именно на это. И только на десятой ссылке наткнулся на грамотное и простое решение, предусмотренное самими разработчиками MySQL.
Это загрузка данных в таблицу из файла, например формата CSV, в который можно экспортировать данные Excel путем "Сохранить как". Не вдаваясь в подробности, будучи уверен, что вы сами разберетесь в деталях, привожу примеры:
ЗАГРУЗКА В ТАБЛИЦУ ИЗ ФАЙЛА
Данные разделены запятыми, данные ячеек заключены в кавычки, новая строка обозначена символом \n:
LOAD DATA INFILE '/home/user/data.csv' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
СОХРАНЕНИЕ ДАННЫХ ИЗ ТАБЛИЦЫ В ФАЙЛ
SELECT a,b,a+b INTO OUTFILE '/home/user/data.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
7 комментариев:
может быть сталкивались немножко с другой проблемой - экспорт данных из OpenOffice в MySQL? ;)
у опенОфиса немного другой способ сохранения в csv. и у меня не получилось найти настройки :( может быть Вы знаете что делать?
Я попробовал сейчас. Файл - Сохранить как - Текст CSV. Когда указываешь куда сохранить, он предлагает варианты разделения данных и как их в кавычки заключать. По умолчаению это запятая и двойные кавычки. Получается нормальный CSV. Но! Важно, чтобы базе данных уже была таблица для приема данных, и кол-во столбцов и их тип подходили к загружаемым данным. Я только что попробовал - все загрузилось.
значит решение всё-таки есть... спасибо :) буду искать, что конкретно у меня глючит. :)
а можете написать код для экспорта данных из CSV в любую базу данных на Python
Отлично! Заработало!
Правда в начале был косячок: запрос импортировал в одну колонку.
Выяснилось, что надо вместо FIELDS TERMINATED BY ',' писать FIELDS TERMINATED BY ';'
:)))))
Я в этом деле совсем лузер, У меня есть. excel и ms sql server. Задача такая. Есть файл Excel в нем файл с данными за месяц по одному предприятию. Таких предприятий 11. Мне надо создать макрос, чтобы я нажатием на кнопку в excel отправлял данные таблиц в таблицы sql в котором содержаться данные по всем предприятиям за все года. Я не разбираюсь в программировании, может поможете, если, что можно поговорить и об оплате.
В написании макросов для Excel я не силен, использовал мало. Программу для ваших целей написать реально (нереального вообще существует мало, обычно просто не хватает знаний). Но для этих целей нужно много всего знать - структуру таблиц базы, имена и типы столбцов таблички Excel - как минимум. А лучше быть на месте, и знать картину в целом - иначе можно напартачить так, что лучше бы руками все вносили. Быть может, найдется кто-то, кто уже занимался подобным на вашем предприятии?
Отправить комментарий