No Image

Excel подключение к mysql

СОДЕРЖАНИЕ
650 просмотров
10 марта 2020

Приложение Excel позволяет создавать подключение к внешним источникам, в том числе базам данных. Но при необходимости подключиться к базе данных под управлением СУБД MySQL, возникает проблема. Программа просто «не умеет» этого делать, но «научить» ее легко.

Установка драйвера

Прежде необходимо установить драйвер Connector/ODBC от Oracle Corporation, скачать который можно по адресу http://dev.mysql.com/downloads/connector/odbc/ (при выборе драйвера под определенную ОС есть важный нюанс, который будет описан ниже).

Создание источника данных

Далее необходимо создать источник данных ODBC. Для этого заходим в «Панель управления», выбираем пункт «Администрирование», в нем пункт «Источники данных (ODBC)». Откроется следующее окно:

Выбираем «Добавить» и попадаем в меню выбора драйвера:

В списке имеется два возможных драйвера для MySQL различных кодировок: Unicode и ANSI. Выбирайте необходимую Вам. Если не знаете, какая Вам нужна, или это не имеет значения, то лучше устанавливать Unicode.
В параметрах подключения указываете:

  1. Произвольное название источника;
  2. Описание источника;
  3. Сервер и порт. Порт оставляйте по умолчанию, если того не требуют настройки сервера;
  4. Пользователь и пароль, как при подключении в phpMyAdmin.

Протестируйте подключение к источнику, нажав кнопку «Test». Если подключение прошло успешно, то в списке баз данных «Database» должен появиться список доступных баз. Выдираем необходимую и жмем «OK». Источник создан.

Подключение к источнику из Excel

Проходим в книге Excel на вкладку «Данные» -> раздел «Подключения» -> «Из других источников» -> «Из мастера подключения данных».

Выбираем «ODBC DSN» -> созданное ранее подключение.

Дальнейшая работа аналогична стандартному подключению к SQL Server.

Ошибка совпадения архитектур

После установки соответствующего драйвера на 64-разрядную ОС, создании источника и подключения к нему, даже если все сделано правильно, может быть выдана ошибка «dns архитектура драйвера и архитектура приложения не соответствуют друг другу».
Проблема заключается в следующем. Вероятно, что во время инсталляции пакета программ Microsoft Office были выбраны параметры по умолчанию, при которых устанавливается 32-рязрядная версия. Таким образом, происходит несовпадение разрядностей драйвера и приложения.
Решение – скачать и установить дополнительно драйвер для Windows 32-bit.
Если установить только 32-битный драйвер, то подключение будет возможно, но создать источник через панель управления не получиться.

Если материалы office-menu.ru Вам помогли, то поддержите, пожалуйста, проект, чтобы мы могли развивать его дальше.

У Вас недостаточно прав для комментирования.

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .

С помощью Excel Get & преобразования качества (Power Query) для подключения к базе данных MySQL.

Примечание: Прежде чем подключиться к базе данных MySQL, необходимо MySQL соединительную линию и чистых 6.6.5 для Microsoft Windows на компьютере. Выберите драйвер, который соответствует вашей версии Office.

На вкладке данные выберите Получение данных > Из базы данных > Из базы данных MySQL. Если кнопка Получить данные не отображается, нажмите кнопку Новый запрос > Из базы данных > Из базы данных MySQL

Читайте также:  Samsung ue40d5000pw прошивка smart tv

На вкладке ленты Power Query щелкните Из базы данных > Из базы данных MySQL.

Далее

В диалоговом окне База данных MySQL в поле Имя сервера укажите сервер базы данных MySQL, к которому нужно подключиться.

Если данные нужно импортировать с использованием запроса на языке базы данных, укажите его в поле Инструкция SQL. Дополнительные сведения см. в статье Импорт данных из базы данных с помощью запроса на ее языке.

Нажмите кнопку ОК.

Если для сервера MySQL требуются учетные данные базы данных:

В диалоговом окне Доступ к базе данных введите имя пользователя и пароль.

Нажмите кнопку Подключиться.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Данные таблиц Microsoft Excel достаточно часто используются для формирования небольших по объему, но достаточно информативных баз данных. И как бы не старались разработчики, программисты, менеджеры внедрить новый продвинутый программный продукт (даже бесплатный) в рабочий процесс, довольно часто всё остается на своих местах. Не знаю как Вам, уважаемые читатели, а мне за почти пять лет работы на предприятии приходилось очень часто иметь дело именно с такими микро-БД будь то табличный отчёт по работе отдела или данные мониторинга прилегающих к предприятию территорий, включающий в себя не только таблицы на тысячи строк, но и графики, диаграммы, расчёты и т.д. Я не могу сказать, что такой метод предоставления данных (в Excel) не верный, напротив, данные предоставленые в Microsoft Excel или альтернативном OpenOffice информативны и понятны, а если добавить в предоставление данных диаграммы, то такому отчёту вообще цены нет. Но, акк бы красиво не выглядели небольшие БД в Excel, а если предприятию нужна централизованная обработка и хранение данных, то одним Excel тут врядли обойдешься, особенно, если предприятие крупное. Буквально неделю назад наблюдал картину, как сотрудник отдела промышленной безопасности со смиренным видом ручками передавал данные с листа Excel в базу MySQL. Скопировал чиселку, открыл программку-клиент, вставил чиселку, нажал "Отправить" и так до посинения. Бред? По-моему, полнейший. Так и с ума сойти не долго. Но я слава Богу в том отделе не работаю и навязывать свою точку зрения на счёт такой работы не стал. Пусть себе копипастят на здоровье. Однако вопрос этот засел в голове на долго: каким образом можно автоматизировать передачу данных из Excel в базу данных MySQL ? И ответ на этот вопрос нашелся.

Вообще вариантов взаимодейсвтия Excel и MySQL нашлось два: использовать драйвер ODBC или воспользоваться технологией DataSnap. Сегодня рассмотрим вариант с ODBC.
Для демонстрации работы программы нам потребуется сервер MySQL. Обычно для таких случаев я использую джентельменский набор для веб-разработчиков Denwer. Поэтому, рекомендую и Вам его скачать, перейдя по этой ссылке. Я скачал и установил Denwer с PHP 5.2. В принципе это не важно – главное, чтоб был MySQL.
Как устанавливать Denwer и настраивать MySQL я не буду, т.к. все подробные инструкции есть на официальном сайте, а перейду сразу к созданию базы данных для тестирования. Итак, запускаем phpMyAdmin и создаем новую базу данных с названием demobase . Для примера создадим БД по статистике ключевых слов (не важно каких и для кого), база данных будет содержать всего одну таблицу, созданную с помощью следующего SQL-запроса:

Читайте также:  Сгенерировать слово из заданных слов

Здесь мы создали таблицу keywords и сделали две записи в таблицу по двум ключевым словам. Теперь откроем MS Excel и создадим таблицу с точно такими же полями, но содержащую данные по другим ключевым словам:

Файл Excel сохраним с названием mykeywords.xls.
Теперь надо установить драйвер ODBC. Для этого можно воспользоваться утилитой mysql-connector-odbc-5.1.x-win32. После того как драйвер MySQL установлен, создаем DSN, в котором указываем информацию для доступа к таблице keywords в базе данных demobase. Для создания DSN воспользуемся стандартными средствами Windows XP:

Открыть в полный размер’ href="http://www.webdelphi.ru/wp-content/uploads/2010/03/odbc1.png" target=_blank>Запускаем ODBC Data Source Administrator и в появившемся окне жмем кнопку Add или "Добавить" (для русских версий Windows):

Открыть в полный размер’ href="http://www.webdelphi.ru/wp-content/uploads/2010/03/odbc_mysql1.png" target=_blank>Теперь, в появившемся окне записываем все данные по источнику данных, как показано на рисунке:

Открыть в полный размер’ href="http://www.webdelphi.ru/wp-content/uploads/2010/03/odbc_mysql_server1.png" target=_blank>По умолчанию при установке Denwer"а пароль для root пустой, поэтому поле password оставляем пустым. После внесения всех данных нажмите на кнопку "Test" и, если все настроено верно, то должно появиться окно сообщения "Connection successful". Теперь жмем "Ok" и в исходном окне Администратора видим новую запись:

Теперь приступим непосредственно к программированию в Delphi . Создадим следующее приложение:

Открыть в полный размер’ href="http://www.webdelphi.ru/wp-content/uploads/2010/03/delphi1.png" target=_blank>В левой части окна размещаются компоненты для доступа к файлу Excel, в правой – к MySQL. Представленные на рисунке компоненты:

  • DBGrid (страница Data Controls) – 2 шт.
  • ExcelDS и MySQLDS – компонены DataSource со страницы Data Access
  • ExcelQuery и MySQLQuery – 2 компонента ADOQuery со страницы dbGO.

Настройка компонентов для доступа к Microsoft Excel выглядит следующим образом. У первой таблицы DBGrid в свойстве DataSource указываем ExcelDS, тот же ExcelDS указываем и у DBNavigator"а. У ExcelDS в свойстве DataSet указываем ExcelQuery. Аналогичным образом настраиваем компоненты в правой части (относящиеся к MySQL).

Теперь необходимо настроить свойство ConnectionString у компонента ExcelQuery. Выделяем строку со свойством в Object Inspector"е и конфигурируем строку подключения:

Открыть в полный размер’ href="http://www.webdelphi.ru/wp-content/uploads/2010/03/ConnectionString1.png" target=_blank>Открыть в полный размер’ href="http://www.webdelphi.ru/wp-content/uploads/2010/03/jet1.png" target=_blank>

Провайдер связи JET 4.0. может использоваться для доступа к различным данным, в том числе к Microsoft Excel или Access. После того как поставщик данных выбран, жмем "Далее" и делаем дополнительные настройки:

Если теперь проверить подключение, то получим сообщение с красным крестом и следующим содержанием: "Не выполнена проверка подключения из-за ошибки при инициализации…" и т.д. и т.п. Не паникуем, а учим JET 4.0. понимать нас с полуслова. Добавляем в настройки дополниельный параметр. Для этого переходим на вкладку " Все " и изменяем поле Extended Properties :

Теперь это свойство указывает на то, что мы будем работать с документом Excel в формате Excel97-2003. Также на вкладке " Дополнительно " укажем тип доступа ReadWrite . Теперь ещё раз проверяем подключение, радуемся:

Читайте также:  Почему на телефоне highscreen

Как видите, пока ничего сверхъестественного не происходит – все просто и давным-давно известно, но только чуть-чуть подзабыто Двигаемся дальше. Теперь настраиваем доступ к MySQL – свойство ConnectionString у MySQLQuery. В окне " Свойства связи с данными " указываем Microsoft OLE DB Provider for ODBC Drivers .

На вкладке " Подключение " указываем ранее созданные MySQL_Connection, в поле " Пользователь " вписываем root и ставим галку напротив " Пустой пароль ":

Теперь, после успешного тестирования соединения, переходим к свойству SQL и записываем в него запрос следующего вида:

SELECT * FROM keywords

Теперь можете выставить к MySQLQuery свойство Active в True и увидите, что в DBGrid вывелись записи ранее внесенные в базу данных MySQL.

Остается самая малость – вытащить из листа Excel данные и скопировать их в базу MySQL. А как это сделать? Очень просто. С помощью ExcelQuery манипулировать данными в Excel также просто, как и с любой другой дазой данных. Вот запрос на получение данных из файла mykeywords.xls.

То есть в качестве таблицы БД выступает отдельный лист. Запишите этот запрос в свойство SQL компонента ExcelQuery и выставьте свойство Active в значение True. У меня получилась следующая картинка:

Теперь напришем следующий обработчик у кнопки (см. рисунок – кнопка "Скопировать текущий элемент"):

Вот так запросто можно копировать данные из Excel в MySQL. Здесь я показал Вам самый простейший пример, наподобие ручного копипаста данных. Но, если проявить совсем чуть-чуть смекалки и умений работы с базами данных, то можно запросто перекидывать из Excel листы целиком или хотябы по нескольку записей за раз.
Аналогичным образом, кстати, можно обрабатывать и листы Excel 2007 в Delphi.

Ссылки по теме

Помощь
Задать вопрос
программы
обучение
экзамены
компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
Популярные статьи
Информационная безопасность Microsoft Офисное ПО Антивирусное ПО и защита от спама Eset Software
Бестселлеры
Курсы обучения "Atlassian JIRA – система управления проектами и задачами на предприятии"
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год. Электронный ключ
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Windows Professional 10 Sngl OLP 1 License No Level Legalization GetGenuine wCOA (FQC-09481)
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Windows Server 2016 Standard
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
Антивирус ESET NOD32 Antivirus Business Edition
Corel CorelDRAW Home & Student Suite X8
О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

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

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

Комментировать
650 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector