С помощью мастера экспорта можно экспортировать данные из базы данных Access в файл формата, распознаваемого приложением Excel. В этой статье описаны процедуры подготовки и экспорта данных в Excel, а также приведены рекомендации по поиску и устранению типичных неполадок, которые могут при этом возникнуть.
В этой статье
-
Экспорт данных в Excel: основы
-
Подготовка к экспорту
-
Выполнение экспорта
-
Что еще важно знать об экспорте
-
Решение проблем, связанных с отсутствующими и неверными значениями
Экспорт данных в Excel: основы
При экспорте данных в Excel приложение Access создает копию выбранных данных, а затем сохраняет их в файле, который можно открыть в Excel. Если данные требуется копировать из Access в Excel достаточно часто, можно сохранить параметры операции экспорта для повторного использования и даже запланировать ее автоматический запуск через определенные интервалы времени.
Стандартные сценарии экспорта данных в Excel
-
В отделе или рабочей группе для работы с данными используется как Access, так и Excel. Данные хранятся в базах данных Access, но для анализа и распространения его результатов используется Excel. Группа выполняет экспорт данных в Excel по мере необходимости, но этот процесс требуется сделать более эффективным.
-
Вы используете Access, но ваш руководитель предпочитает работать с данными в Excel. Вам приходится регулярно копировать данные в Excel, но вам хотелось бы автоматизировать этот процесс ради экономии времени.
Об экспорте данных в Excel
-
В приложении Access нет команды «Сохранить как” с возможностью сохранения данных в формате Excel. Чтобы скопировать данные в Excel, необходимо воспользоваться функций экспорта, описанной в этой статье, либо скопировать данные Access в буфер обмена, а затем вставить их в таблицу Excel.
-
Можно экспортировать таблицу, запрос, форму или отчет, а также отдельные записи в представлении.
-
В приложении Microsoft Excel есть команда импорта данных из базы данных Access. Ее можно использовать вместо команды экспорта Access, однако с помощью команды импорта в Excel можно импортировать только таблицы и запросы. Дополнительные сведения см. в разделе справки Excel Подключение к внешним данных и их импорт.
-
Экспортировать макросы и модули нельзя. При экспорте формы, отчета или таблицы с подчиненными формами, отчетами или таблицами экспортируется только главная форма, отчет или таблица. Все подчиненные формы, отчеты и таблицы следует экспортировать в Excel отдельно.
-
В ходе операции экспорта можно экспортировать лишь один объект базы данных. Однако после нескольких операций экспорта можно выполнить в Excel слияние нескольких листов.
К началу страницы
Подготовка к экспорту
Прежде чем выполнять операцию экспорта, следует проверить данные, которые будут экспортироваться, на предмет сообщений об ошибках и ошибочных значений. Ошибки рекомендуется устранить до экспорта данных в Excel. В противном случае в ходе экспорта могут возникнуть неполадки, а в ячейки листа Excel могут быть вставлены пустые значения. Дополнительные сведения о проблемах, которые могут возникнуть при экспорте данных в Excel, см. в разделе Решение проблем, связанных с отсутствующими и неверными значениями.
Если исходным объектом является таблица или запрос, определите, как требуется экспортировать данные: с сохранением форматирования или без него. Выбранный способ экспорта влияет на два аспекта целевого файла: объем экспортируемых данных и формат их отображения. В приведенной ниже таблице представлены результаты экспорта форматированных и неформатированных данных.
Экспорт |
Исходный объект |
Поля и записи |
Форматирование |
Без форматирования |
Таблица или запрос Примечание: Формы и отчеты невозможно экспортировать без форматирования. |
Экспортируются все поля и записи базового объекта. |
Параметры свойства «Формат» пропускаются в ходе операции. Для полей подстановки экспортируются только значения кодов подстановки. Содержимое полей гиперссылок экспортируется в виде столбца текста, в котором ссылки отображаются в формате отображаемый_текст#адрес#. |
С форматированием |
Таблица, запрос, отчет или форма |
Экспортируются только поля и записи, отображаемые в текущем представлении или объекте. Фильтрованные записи, скрытые столбцы таблицы, а также не отображаемые в форме или отчете поля не экспортируются. |
В мастере соблюдаются параметры свойства «Формат». В случае полей подстановки экспортируются значения подстановки. При экспорте полей гиперссылок значения экспортируются в виде гиперссылок. При экспорте полей форматированного текста текст экспортируется без форматирования. |
-
Выберите целевую книгу и ее формат. Имейте в виду, что отчеты можно экспортировать только в более старом формате XLS (но не в формате XLSX).
В процессе экспорта Access предлагает указать имя конечной книги. В приведенной ниже таблице представлена сводка случаев создания новой книги или перезаписи имеющейся.
Целевая книга |
Исходный объект |
Экспортируемые данные |
Результат |
Не существует |
Таблица, запрос, отчет или форма |
Данные с форматированием или без него |
В ходе операции экспорта создается книга. |
Существует |
Таблица или запрос |
Данные без форматирования |
Файл не перезаписывается. В книгу добавляется новый лист, которому присваивается имя объекта, из которого экспортируются данные. Если лист с таким именем уже существует, Access предлагает либо заменить содержимое соответствующего листа, либо указать другое имя нового листа. |
Существует |
Таблица, запрос, отчет или форма |
Данные с форматированием |
Файл перезаписывается экспортируемыми данными. Все имеющиеся листы удаляются, и создается новый лист с именем экспортируемого объекта. Данные листа Excel наследуют параметры форматирования исходного объекта. |
Данные всегда добавляются в новый лист. Невозможно добавить данные в имеющийся лист или именованный диапазон.
К началу страницы
Выполнение экспорта
-
Если целевая книга Excel открыта, закройте ее перед выполнением операции.
-
На панели навигации исходной базы данных выберите объект, который требуется экспортировать.
Экспорт только части данных
Если объектом является таблица, запрос или форма и требуется экспортировать только часть данных, откройте объект в режиме таблицы и выберите необходимые записи.
Открытие формы в режиме таблицы
-
Чтобы открыть форму, дважды щелкните ее.
-
Щелкните форму правой кнопкой мыши, а затем щелкните элемент Режим таблицы. Если он недоступен, выполните действия, описанные ниже.
-
Выберите пункт Режим конструктора.
-
Нажмите клавишу F4, чтобы отобразить панель задач «Страница свойств».
-
В раскрывающемся списке в верхней части этой панели выберите пункт Форма.
-
На вкладке «Формат» панели «Страница свойств» установите значение Да для свойства Режим таблицы.
-
На вкладке Конструктор в группе Представления выберите пункт Режим таблицы.
Примечание: Часть отчета экспортировать нельзя. Однако можно выбрать или открыть таблицу или запрос, на которых основан отчет, и затем экспортировать часть данных в этот объект.
-
-
-
На вкладке Внешние данные в группе Экспорт нажмите кнопку Excel.
-
В диалоговом окне Экспорт — Электронная таблица Excel просмотрите предлагаемые имена файлов рабочей книги Excel (Access использует имена исходных объектов). При необходимости имя файла можно изменить.
-
В поле Формат файла выберите нужный формат файла.
-
Если при экспорте таблицы или запроса требуется сохранить форматирование данных, установите флажок Экспортировать данные с макетом и форматированием. Дополнительные сведения см. в разделе Подготовка к операции экспорта.
Примечание: При экспорте формы или отчета этот флажок установлен по умолчанию и недоступен для изменения.
-
Чтобы просмотреть конечный файл Excel после завершения операции экспорта, установите флажок Открыть целевой файл после завершения операции экспорта.
Если исходный объект был открыт и одна или несколько записей для экспорта выделены до запуска операции, можно установить флажок Экспортировать только выбранные записи. Если требуется экспортировать все отображаемые записи, этот флажок необходимо снять.
Примечание: Если записи не выделены, этот флажок недоступен (неактивен).
-
Нажмите кнопку ОК.
Если в ходе экспорта возникает ошибка, в Access отображается сообщение с описанием ее причины. В противном случае приложение Access экспортирует данные и в соответствии с параметрами, выбранными на этапе 7, открывает либо не открывает целевую книгу в Excel. Затем в Access открывается диалоговое окно, в котором можно создать спецификацию со сведениями об экспорте.
К началу страницы
Что еще важно знать об экспорте
-
Сведения о том, как сохранить сведения об экспорте в виде спецификации, которую можно использовать повторно, см. в статье Сохранение параметров операции импорта или экспорта в виде спецификации.
-
Дополнительные сведения о запуске спецификаций см. в статье Выполнение сохраненной операции импорта или экспорта.
-
Дополнительные сведения о запуске спецификаций в определенное время см. в статье Планирование импорта или экспорта.
-
Сведения о том, как изменить имя спецификации, удалить ее или обновить имена исходных файлов, см. в статье Задачи управления данными.
К началу страницы
Решение проблем, связанных с отсутствующими и неверными значениями
В приведенной ниже таблице описаны различные способы устранения типичных ошибок.
Совет: Если отсутствует всего несколько значений, введите их в книгу Excel самостоятельно, в противном случае исправьте исходный объект в базе данных Access и повторите экспорт.
Источник проблемы |
Описание и решение |
Вычисляемые поля |
Экспортируются результаты вычисляемых полей; выражения, на основе которых производится вычисление, не экспортируются. |
Многозначные поля |
Многозначные поля экспортируются в виде списка значений, разделенных точками с запятой (;). |
Рисунки, объекты и вложения |
Графические элементы (например, эмблемы, содержимое полей объектов OLE и вложения, которые содержатся в исходных данных) не экспортируются. Их следует добавить на лист вручную после завершения операции экспорта. |
График |
При экспорте формы или отчета, содержащих объект Microsoft Graph, он не экспортируется. |
Данные в неверном столбце |
Значения Null на целевом листе иногда заменяются данными, которые должны находиться в следующем столбце. |
Отсутствующие значения даты |
Значения дат, предшествующих 1 января 1900 г., не экспортируются. Соответствующие ячейки на листе содержат значения Null. |
Отсутствующие выражения |
Выражения, которые используются для вычислений, не экспортируются в Excel. Экспортируются только результаты вычислений. Формулу следует добавить в рабочий лист Excel вручную после завершения операции экспорта. |
Отсутствующие подчиненные формы, отчеты и таблицы |
При экспорте формы, отчета или таблицы экспортируется только главная форма, отчет или таблица. Необходимо повторить операцию экспорта для всех подчиненных форм, отчетов и таблиц, которые требуется экспортировать. |
Отсутствующие или неправильно отформатированные столбцы |
Если ни один из столбцов на конечном листе не отформатирован, повторите операцию экспорта, установив флажок Экспортировать данные с макетом и форматированием в мастере. Если же только некоторые столбцы имеют форматирование, отличное от исходного, выполните нужные действия в Excel вручную. Форматирование столбца в Excel
|
Значение «#» в столбце |
Значение # может содержаться в столбце, который соответствует логическому полю формы. Это может быть результатом запуска операции экспорта из области переходов или режима формы. Чтобы устранить эту ошибку, откройте форму в режиме таблицы, прежде чем экспортировать данные. |
Индикаторы или значения ошибки |
Проверьте ячейки на наличие индикаторов ошибки (треугольников зеленого цвета в углу ячеек) или значений ошибки (строк, которые начинаются со знака #, а не с нужных данных). |
К началу страницы
SQL Server is very popular in Relational Database and it is used across many software industries. Portability of data is a much-required feature of any database. i.e. Database should support features like exporting database data to Excel/CSV/JSON and also should import data from them. In this article, let us see how to import and export SQL Server Data to an Excel file. Azure data studio is a very useful tool for export options and the best part is it can run on Windows/Linux/Mac Operating system.
Method 1: exporting data to Excel via Azure DataStudio
Step 1: Database creation
We should have a database to proceed further. Let us keep ‘GEEKSFORGEEKS’ as the database name.
Syntax:
--Command to create database: - CREATE DATABASE <dbname>; Create Database GEEKSFORGEEKS:
Query:
--Make the database active USE GEEKSFORGEEKS;
Step 2: Adding the tables to the database
Creating a table with a Primary Key. Each author will have their unique ID and hence it is a Primary Key.
Query:
CREATE TABLE Posts ( ID INT IDENTITY NOT NULL PRIMARY KEY, PostName VARCHAR(255) NOT NULL, Category VARCHAR(255), Likes INT, Shares INT ); GO
Step 3: Inserting rows in the table. We can add only the necessary columns.
Query:
insert into Posts(PostName,Category,Likes,Shares) VALUES ('Core Java Programming','Java',10,5); insert into Posts(PostName,Category,Likes,Shares) VALUES ('SQLServer Programming','Java',20,8); insert into Posts(PostName,Category,Likes,Shares) VALUES ('Oracle Programming','Java',25,12); insert into Posts(PostName,Category,Likes,Shares) VALUES ('MongoDB Programming','Java',50,18); insert into Posts(PostName,Category,Likes,Shares) VALUES ('Python Programming','Java',15,10);
Step 4: Let us do a general query
Query:
SELECT * FROM Posts;
Output:
Step 5: Suppose if we want to exporting data to Excel via Azure Datastudio
Azure Datastudio has come with rich features for exporting data to Excel. Even exporting to CSV/JSON/XML/Chart are also possible. As given in below screenshot, need to click the option in the right corner
Output:
On clicking on “Save As Excel”, the resultant output is saved in excel format. We can see the saved contents below:
Step 6: We can write queries as per our needs and those data alone also can be exported. i.e. ultimately whatever results are in the “Results” pane are saved into excel format.
Query:
-- To get the details of Posts in which category is like Database SELECT PostName,Category,Likes,Shares FROM Posts WHERE Category LIKE '%Database%' ORDER BY PostName
Output:
This output can be exported to excel by clicking on “Save as Excel”, upon completion we can see the results as
Method 2: Import data from EXCEL into SQL server using SQL Server Management Studio
Importing data via SQL Server Management Studio. This is an easier option.
Step 1: Click on “Tasks” and choose “Import Data” option.
Step 2: The below screens are self-explanatory. Let us see one by one.
Step 3:Click on “Microsoft Excel” option.
Step 4: Source location can be selected as given below
Step 5: Destination location can be chosen from this window
Step 6: We can see that a table with the name “dataFromExcelForPostsByCategory” is created. If we compare the contents of excel data, they are the same.
In every database, portability is much important. In SQL server, by above-mentioned ways, they are done. For export, using Azure data studio it is explained and for import, by using SQL Server Management Studio, it is explained.
Знаете ли вы, что вы можете экспортировать базу данных Access на лист Excel? В Microsoft Excel есть функции для импорта или экспорта данных из листа Excel или в него. При экспорте данных в Excel Access создает копию выбранных данных, а затем сохраняет скопированные данные в файле, который можно открыть в Microsoft Excel. В Access можно экспортировать таблицы, запросы, формы и отчеты, но нельзя экспортировать макросы или модули в Excel. При экспорте форм, отчетов или таблиц, содержащих подчиненные формы, подотчеты и подтаблицы, экспортируется только основная форма, отчет или таблица.
Выполните следующие действия, чтобы экспортировать базу данных Access в Excel:
- Откройте файл базы данных Access.
- Перейдите на вкладку «Внешние данные».
- Нажмите кнопку Excel в группе Экспорт.
- Щелкните Обзор.
- Назовите файл, выберите папку для сохранения файла экспорта и нажмите «Сохранить».
- Нажмите «ОК».
- Нажмите кнопку Закрыть.
- Найдите и откройте файл.
Откройте файл базы данных Access.
Перейдите на вкладку «Внешние данные».
Нажмите на Excel кнопка в Экспорт группа.
Откроется диалоговое окно мастера «Экспорт — электронная таблица Excel».
Нажмите на Просматривать кнопка.
Откроется диалоговое окно сохранения файла.
Назовите файл, выберите папку для сохранения файла экспорта и нажмите Сохранять.
Вернувшись в диалоговое окно мастера «Экспорт — таблица Excel», нажмите ХОРОШО.
Затем закройте диалоговое окно
Найдите файл, который вы экспортировали в Excel, и откройте его (это файл Excel).
Можете ли вы скопировать базу данных Access?
Да, вы можете скопировать базу данных Access в другую папку. Откройте папку, содержащую базу данных Access, которую вы хотите скопировать. Щелкните правой кнопкой мыши файл базы данных Access и выберите «Копировать» в контекстном меню. Перейдите в папку, в которую вы хотите вставить базу данных Access; щелкните правой кнопкой мыши и выберите «Вставить» в контекстном меню.
Читайте: Как создавать таблицы с помощью конструктора таблиц в Access
Какие типы файлов вы можете экспортировать в Access?
В Access вы можете экспортировать данные из Access в различных форматах, таких как список Excel, Word и SharePoint. Экспорт базы данных Access в Excel приведет к экспорту объекта на рабочий лист в файле Excel. При экспорте базы данных Access в Word выбранный объект будет экспортирован в форматированный текст. Экспорт базы данных Access в SharePoint приведет к экспорту выбранного объекта в SharePoint в виде списка.
Читайте: Как вставить файл PDF в лист Excel
Как экспортировать данные из Access в Excel более 65000 строк?
Чтобы экспортировать данные Access, содержащие более 65 000 строк с форматированием и макетом, вам потребуется настроить запрос на экспорт 65 000 строк за раз в отдельные электронные таблицы. После этого вам нужно скопировать и вставить их вместе в одну таблицу.
Мы надеемся, что это руководство поможет вам понять, как экспортировать базу данных Access в Excel.
Время на прочтение
4 мин
Количество просмотров 54K
Приветствую всех.
При автоматизации небольших магазинов для хранения данных часто используют PostgreSQL. И часто возникает потребность экспортировать эти данные в Excel. В этой статье я расскажу вам как я решал эту задачу. Естественно, матерые специалисты вряд ли откроют для себя что-то новое. Однако, материал будет интересен тем кто «плавает» в этой теме.
Итак, естественно, самый просто и банальный способ экспортировать данные результатов запросов в csv-файлы, а затем открыть их в Excel. Это выглядит вот так:
COPY (SELECT * FROM your_table) TO 'C:/temp/123.csv' CSV;
Однажды, ко мне обратился товарищ, которому нужно было получать различные данные из PostgreSQL. Причем, запросы на предоставление данных менялись день ото дня. Казалось бы первым способом можно было бы спокойно пользоваться, но в нем есть существенные недостатки:
- во-первых, вставка данных из PostgreSQL происходит именно на сервере;
- во-вторых, можно конечно заморочиться написать batch-скрипт, который будет удаленно вызывать этот запрос на сервере, затем этот файл скопировать на компьютер пользователя и инициировать открытие в Excel.
Но я захотел ускорить процесс как можно быстрее, и я нашел способ.
Шаги:
1. Идем по ссылке и в зависимости от разрядности компьютера скачиваем установщик ODBC драйвера. Установка его проста и не требует особых знаний.
2. Чтобы пользователи могли со своих компьютеров цепляться к БД не забудьте в файле pg_hba.conf установить параметры для IP-адресов, с которых можно производить подключения:
В данном примере, что все рабочие станции смогут подключаться к серверу с БД:
3. Далее через Excel просто генерируем файл динамического запроса к данным *.dqy. Далее этот файл просто можно менять по своему усмотрению. Можно прям ниже следующий текст взять, скопировать в блокнот и там отредактировать, сохранив файл *.dqy. Вводим имя файла и расширение dqy. Выбираем типа файла ВСЕ(All files):
XLODBC
1
DRIVER={PostgreSQL Unicode};DATABASE=your_base;SERVER=192.168.12.12;PORT=5432;UID=postgres;PASSWORD=postgres;SSLmode=disable;ReadOnly=0;Protocol=7.4;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;Socket=4096;UnknownSizes=0;MaxVarcharSize=255;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=0;Ksqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;UpdatableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=0;LowerCaseIdentifier=0;GssAuthUseGSS=0;XaOpt=1
select * from your_table
DATABASE – указывается наименование БД к которой будет производиться подключение;
SERVER – адрес сервера;
PASSWORD – пароль на подключение к БД.
Обратите внимание, что в большом тексте указываются параметры подключения к БД и ваша БД. Также можно еще сконфигурировать множество параметров подключения
В последней строке пишется сам запрос. Далее сохраняем файл. Если на компьютере установлен Microsoft Excel, тогда файл сразу же приобретет пиктограмму:
При запуске файла будет выдано диалоговое окно. Смело нажимаем «Включить»:
И получаем результат запроса из БД:
Теперь можно создать несколько таких файлов и спокойно скопировать их на рабочий стол пользователя:
Кстати, я пошел немного дальше. Откопал старый добрый VB6. Можно так сделать с любым языком программирования. Сделал форму, которая по выбранной дате запрашивает данные из БД, путем генерации этого *.dqy файла:
Затем немного покодил (вот часть кода):
sq1 = "your_query"
Open "report.dqy" For Output As #1
Print #1, "XLODBC"
Print #1, "1"
Print #1, "DRIVER={PostgreSQL Unicode};DATABASE=your_db;SERVER=192.168.12.12;PORT=5432;UID=postgres;PASSWORD=postgres;SSLmode=disable;ReadOnly=0;Protocol=7.4;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;Socket=4096;UnknownSizes=0;MaxVarcharSize=255;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=0;Ksqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;UpdatableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=0;LowerCaseIdentifier=0;GssAuthUseGSS=0;XaOpt=1"
Print #1, sq1
Close #1
Shell "CMD /c report.dqy"
Результат получился тот же — данные из Excel, и пользователю удобно. Да, кстати, в строке:
DRIVER={PostgreSQL Unicode};
если речь идет о 64-битном процессоре и драйвере ODBC, установленном для 64 бит, то надо писать:
DRIVER={PostgreSQL Unicode(x64)};
Ну, и самое главное, несмотря на всю простоту способа, у него есть конечно недостатки: запрос можно писать только в одну строку, т.е. записать строку вот в таком виде не получиться. Нужно только в одну:
SELECT * FROM
un_cg_product
— Не сможет обрабатывать на изменение данных типа:
UPDATE
или
INSERT
Ну и может выводить только результат запроса в виде списка, т.е. красивый документ сделать не получиться. На этом все. Надеюсь данный способ кому-нибудь пригодиться. Буду рад получить ваши рекомендации по усовершенствованию моего метода или альтернативного решения данной проблемы.
Если нужно быстро и единоразово выгрузить данные из таблицы MySQL в Exel файл, то помогут следующие способы:
1
Экспорт через PHPMyAdmin
В PHPMyAdmin при экспорте можно выбрать формат «CSV for MS Excel»:
При открытии полученного файла в Excel будет сбита кодировка:
Чтобы это исправить, нужно открыть csv файл в редакторе типа Notepad++ и изменить кодировку на ANSI:
Результат:
2
Экспорт через HTML таблицу
Смысл метода состоит в том чтобы PHP-скриптом сформировать HTML таблицу:
<?php
$dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль');
$sth = $dbh->prepare("SELECT * FROM `test`");
$sth->execute();
$items = $sth->fetchAll(PDO::FETCH_ASSOC);
?>
<table>
<tr>
<td>ID</td>
<td>Категория</td>
<td>Название</td>
<td>Описание</td>
</tr>
<?php foreach($items as $row): ?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['category']; ?></td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['text']; ?></td>
</tr>
<?php endforeach; ?>
</table>
PHP
Результат работы скрипта:
Полученную таблицу копируем и вставляем в чистый лист Microsoft Exel:
3
Экспорт через PHPExcel
Третий метод – сформировать xls-файл в библиотеке PHPExcel (PHPExcel.zip).
//spl_autoload_unregister('autoload');
require_once __DIR__ . '/PHPExcel/Classes/PHPExcel.php';
require_once __DIR__ . '/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php';
$xls = new PHPExcel();
$xls->setActiveSheetIndex(0);
$sheet = $xls->getActiveSheet();
// Шапка
$sheet->getStyle("A1:D1")->getFont()->setBold(true);
$sheet->setCellValue("A1", 'ID');
$sheet->setCellValue("B1", 'Категория');
$sheet->setCellValue("C1", 'Название');
$sheet->setCellValue("D1", 'Описание');
// Выборка из БД
$dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль');
$sth = $dbh->prepare("SELECT * FROM `test`");
$items = $sth->fetch(PDO::FETCH_ASSOC);
$index = 2;
foreach ($items as $row) {
$sheet->setCellValue("A" . $index, $row['id']);
$sheet->setCellValue("B" . $index, $row['category']);
$sheet->setCellValue("C" . $index, $row['name']);
$sheet->setCellValue("D" . $index, $row['name']);
$index++;
}
// Отдача файла в браузер
header("Expires: Mon, 1 Apr 1974 05:00:00 GMT");
header("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-type: application/vnd.ms-excel" );
header("Content-Disposition: attachment; filename=prods.xlsx");
$objWriter = new PHPExcel_Writer_Excel2007($xls);
$objWriter->save('php://output');
exit();
PHP
Результат: