Как sql запрос выгрузить в excel
Перейти к содержимому

Как sql запрос выгрузить в excel

  • автор:

Выполнять SQL-запросы к файлам Excel

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

Предположим, поток должен изменить только те реестры Excel, которые содержат определенное значение. Чтобы реализовать эту функциональность без SQL-запросов, вам потребуются циклы, условные выражения и несколько действий Excel.

Вы также можете реализовать эту функциональность с помощью SQL-запросов, используя только два действия: Открыть SQL-подключение и Выполнять инструкции SQL.

Откройте SQL-подключение к файлу Excel

Перед запуском SQL-запроса вы должны открыть подключение с файлом Excel, к которому вы хотите получить доступ.

Чтобы установить подключение, создайте новую переменную с именем %Excel_File_Path% и инициализируйте его, указав путь к файлу Excel. При желании вы можете пропустить этот шаг и использовать жестко заданный путь к файлу позже в потоке.

Снимок экрана действия «Задать переменную», содержащего путь к файлу Excel.

Теперь разверните действие Открыть SQL-подключение и заполните следующую строку подключения в его свойствах.

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%Excel_File_Path%;Extended Properties=»Excel 12.0 Xml;HDR=YES»;

Для успешного использования представленной строки подключения вам необходимо скачать и установить Распространяемый пакет ядра СУБД Microsoft Access 2010.

Снимок экрана действия «Открыть SQL-соединение».

Откройте SQL-подключение к файлу Excel, защищенному паролем

Другой подход требуется в сценариях, где вы запускаете SQL-запросы к файлам Excel, защищенным паролем. Действие Открыть SQL-подключение не может подключиться к файлам Excel, защищенным паролем, поэтому вам необходимо снять защиту.

Для этого запустите файл Excel с помощью действие Запустить Excel. Файл защищен паролем, поэтому введите соответствующий пароль в поле Пароль.

Снимок экрана действия Запустить Excel и полем Пароль.

Затем разверните соответствующие действия автоматизации пользовательского интерфейса и перейдите к Файл>Информация>Защита книги>Зашифровать паролем. Дополнительные сведения об автоматизации пользовательского интерфейса и о том, как использовать соответствующие действия можно найти в Автоматизировать классические приложения.

Снимок экрана с действиями пользовательского интерфейса, используемыми для выбора параметра «Зашифровать с помощью пароля».

После выбора Зашифровать паролем заполните пустую строку во всплывающем диалоговом окне, используя действие Заполнить текстовое поле в окне. Чтобы заполнить пустую строку, используйте следующее выражение: %»»%.

Снимок экрана действия «Заполнить текстовое поле в окне».

Чтобы нажать на ОК в диалоговом окне и применить изменения, разверните действие Нажать кнопку в окне.

Снимок экрана действия «Нажать кнопку в окне».

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

Снимок экрана действия

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

Когда работа с файлом Excel будут завершена, используйте действие Удалить файлы для удаления незащищенной копии файла Excel.

Снимок экрана действия «Удалить файлы».

Чтение содержимого электронной таблицы Excel

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

Более эффективный способ получения определенных значений из электронных таблиц — это рассматривать файлы Excel как базы данных и выполнять на них SQL-запросы. Этот подход быстрее и увеличивает производительность потока.

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

SELECT * FROM [SHEET$] 

Снимок экрана

Чтобы применить этот SQL-запрос в ваших потоках, замените заполнитель SHEET именем электронной таблицы, к которой вы хотите получить доступ.

Чтобы получить строки, содержащие определенное значение в определенном столбце, используйте следующий запрос SQL:

SELECT * FROM [SHEET$] WHERE [COLUMN NAME] = 'VALUE' 

Чтобы применить этот SQL-запрос в ваших потоках, замените:

  • SHEET с именем электронной таблицы, к которой вы хотите получить доступ.
  • COLUMN NAME столбцом, содержащим значение, которое вы хотите найти. Столбцы в первой строке листа Excel идентифицируются как имена столбцов таблицы.
  • VALUE со значением, которое вы хотите найти.

Удалить данные из строки Excel

Хотя Excel не поддерживает SQL-запрос DELETE, вы можете использовать запрос UPDATE, чтобы установить для всех ячеек определенной строки значение NULL.

Точнее, вы можете использовать следующий SQL-запрос:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE' 

Снимок экрана с инструкциями Выполнить SQL, заполненными запросом UPDATE.

При разработке потока вы должны заменить заполнитель SHEET именем электронной таблицы, к которой вы хотите получить доступ.

Заполнители COLUMN1 а также COLUMN2 представляют имена всех столбцов для обработки. В этом примере два столбца, но в реальном сценарии количество столбцов может быть другим. Столбцы в первой строке листа Excel идентифицируются как имена столбцов таблицы.

Часть запроса [COLUMN1]=’VALUE’определяет строку, которую вы хотите обновить. В вашем потоке используйте имя столбца и значение в зависимости от того, какая комбинация однозначно описывает строки.

Получить данные Excel, кроме определенной строки

В некоторых сценариях может потребоваться получить все содержимое электронной таблицы Excel, кроме определенной строки.

Удобный способ добиться этого результата — установить для значений нежелательной строки значение NULL, а затем получить все значения, кроме нулевых.

Чтобы изменить значения определенной строки в электронной таблице, вы можете использовать SQL-запрос UPDATE, представленный в Удалить данные из строки Excel:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE' 

Снимок экрана с инструкциями Выполнить SQL, заполненными запросом UPDATE.

Затем выполните следующий SQL-запрос, чтобы получить все строки электронной таблицы, не содержащие значений NULL:

SELECT * FROM [SHEET$] WHERE [COLUMN1] IS NOT NULL OR [COLUMN2] IS NOT NULL 

Заполнители COLUMN1 а также COLUMN2 представляют имена всех столбцов для обработки. В этом примере два столбца, но в реальной таблице количество столбцов может быть другим. Все столбцы в первой строке листа Excel идентифицируются как имена столбцов таблицы.

Export Data to Excel from Master Data Services

В надстройке Master Data Services для Excel необходимо экспортировать данные из репозитория MDS, чтобы работать с ним.

Если вы хотите отфильтровать набор данных перед загрузкой, ознакомьтесь с разделом «Фильтрация данных перед экспортом» (надстройка MDS для Excel).

Предварительные условия

Для выполнения этой процедуры:

  • Необходимо иметь разрешение на доступ к функциональной области Обозреватель .

Экспорт данных из MDS в Excel

  1. Откройте Excel и на вкладке Основные данные установите соединение с репозиторием MDS. Дополнительные сведения см. в разделе «Подключение к репозиторию MDS» (надстройка MDS для Excel).
  2. На панели Обозреватель основных данных выберите модель и версию. Заполняется список сущностей.
    • Если панель Обозреватель основных данных не видна, в группе Соединение и загрузка нажмите Показать обозреватель.
    • Если панель Обозреватель основных данных отключена, то причина этого заключается в том, что существующий лист уже содержит данные, управляемые MDS. Чтобы включить эту панель, откройте новый лист.
  3. В области Обозреватель основных данных в списке сущностей дважды щелкните сущность, которую нужно загрузить.
  • В Excel загружается только первый миллион элементов. Чтобы отфильтровать список перед загрузкой, на ленте в группе Подключение и загрузка нажмите кнопку Фильтр.
  • В столбцах, которые являются ограниченными списками (атрибутами на основе домена), по умолчанию загружаются только первые 25 000 значений. Это число можно изменить в свойстве MaximumDbaEntitySize в файле excelusersettings.config, расположенном на компьютере, на котором установлена программа Excel. Этот файл находится в папке C:\Users\\AppData\Local\Microsoft\SQL Server\130\MasterDataServices\. Если количество значений для атрибута на основе домена превышает настройку свойства MaximumDbEntitySize, список значений не загружается.

Если при загрузке разделенных текстом данных с помощью надстройки для Microsoft Excel в 32-разрядную версию Excel свойствам Число ячеек для загрузки и Число ячеек для публикации присвоено максимальное значение 1000, возникнет ошибка нехватки памяти. Для использования максимальных значений свойств Число ячеек для загрузки и Число ячеек для публикациинеобходимо использовать 64-разрядную версию Excel.

Не знаете, как выгрузить данные из SQL в Excel для отчета?

Не знаете, как выгрузить данные из SQL в Excel для отчета?

Итак, перед нами поставлена задача сделать автоматизированный отчет на основании данных сервера SQL . Есть несколько способов решения данной задачи: вы можете использовать Microsoft Office Access, но мы п ойдем простым путем и сделаем этот отчет в Microsoft Office Excel. ВНИМАНИЕ: для создания данного отчета Вам необходимо проверить настройки (Источники данных (ODBC) в п анели управления. В разделе системный DNS добавьте коннектор, который будет смотреть на Ваш сервер SQL . Также проверьте, что для Ваш ей учетн ой записи доступны те вьюхи и те таблицы которые вам нужны для отчета. После настройки ODBC мы откр ываем Microsoft Office Excel.

На листе 2 пишем период отчета.

s26011.jpg

Переходим на страницу куда будут выгружаться данны е. Я переименовал страницу «Лист1» в «Запрос». Теперь необходимо сделать связку на наш SQL сервер «Действие >Импорт внешних данных > Создать запрос»

s77828.jpg

В данном окне Вам необходимо вбить логин и пароль на доступ к SQL серверу. Который Вам должен предоставить администратор SQL сервера.

68043.jpg

В водим пароль и логин.

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

50380.jpg

Жмем отмена.
В диалоговом окне « Microsoft Query »

61594.jpg

Выбираем вьюху или таблицу из которой вам нужно выгружать данные.

30015.jpg

Видим такую картинку

s50059.jpg

Нажать на эту кнопку.

98880.jpg

Выбираем поле дата_создания и в значении пишем

Внимание: Если у Вас для выгрузки используется другое поле, не ДАТА_СОЗДАНИЯ, как у меня, то Вам нужно указать ключ по которому Вы будете выгружать данные из базы.(Можно без ключа, только не забывайте про ограничения Exl )

s50653.jpg

Теперь сохраняем запрос.

s52979.jpg

s92678.jpg

Дважды щелкнуть на * (Левой кнопкой мыши)

46574.jpg

Указать начало периода.

59932.jpg

Указать окончание периода.

62636.jpg

Получили данные, теперь их нужно загрузить в эксель.

Нажмите «Файл» «Вернуть данные в Microsoft Office Excel»

s88653.jpg

Указали строчку с которой начнутся выгружаться данные.
На листе «Запрос»

s42986.jpg

Нажимаем на Параметры

s08147.jpg

Видим картинку параметров.

20604.jpg

Выбираем нижнее значение и указываем поле, в котором будет указанна дата начала периода.

То, что указанно на Листе 2

77750.jpg

21.JPG

Теперь выбираем окончание периода. Тоже самое только на строчку ниже.

22.JPG

23.JPG

24.JPG

Жмем ок

Теперь сохраняем файл.
Переименовываем страницу.

25.JPG
26.JPG

Ну а дальше дело техники.

27.JPG

Теперь для обновления отчета Вам понадобится только сменить интервал времени и обновить данные на листе «Запрос». Правой кнопкой на данные и выбрать пункт «Обновить запрос»

Мы получили данные с SQL в Microsoft Office Excel. Для анализа данных используете связанные таблицы, или Вы можете написать свои VB скрипты.

Как из sql выгрузить в excel

Есть несколько способов выгрузки данных из SQL в Excel. Рассмотрим несколько из них:

  1. Используйте функцию экспорта в Excel в среде управления базами данных. Некоторые программы, такие как Microsoft SQL Server Management Studio, MySQL Workbench или phpMyAdmin, позволяют экспортировать результаты SQL-запросов в формате Excel. Для этого необходимо выполнить SQL-запрос, затем выбрать опцию экспорта в Excel в меню программы.
  2. Используйте SQL-запрос, который выводит результаты в формате CSV, а затем откройте CSV-файл в Excel. Для этого выполните SQL-запрос с использованием ключевого слова INTO OUTFILE , чтобы сохранить результаты запроса в CSV-файл. Например:
SELECT * FROM таблица INTO OUTFILE 'путь_к_файлу.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

После выполнения этого запроса CSV-файл будет сохранен в указанном каталоге. Откройте Excel и выберите опцию «Открыть файл», затем выберите CSV-файл и откройте его в Excel.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *