admin / 03.10.2018

Импорт\экспорт в эксель — DataExpress

.

.

Наверняка многие думают, что Excel формата XLSX очень сложен для чтения и нужно обязательно использовать сложные скрипты и библиотеки. Так было со старым форматом XLS. Для нового экселя – все куда проще. XLSX – это зип архив, внутри которого в виде XML расположены данные по ячейкам и все остальные – в стандартной структуре с малыми хитростями.
Знания этого можно применять для настройки импорта данных из экселя. Любых данных. В дальнейшем мы разберем, как можно самостоятельно создавать эксель файл, не прибегая к супер библиотекам.
Нам понадобятся PHP 5, встроенный модуль ZIP и SimpleXML. Как вы думаете, сколько строк кода нам понадобится?

 

Для примера — расположим файл в папке со скриптом. Назовем его file.xlsx. Из данного файла нам понадобятся файл с данными по первому листу. Он расположен по адресу
file.xlsx/xl/worksheets/sheet1.xml
И файл с частыми строками, сделанный из соображений экономии повторяющихся фраз
file.xlsx/xl/sharedStrings.xml
Нужно считать все строки и вставлять их значения при нахождении ссылки на строку
Сказано – сделано. Создаем ассоциативный массив

Первой строкой – мы считываем полный текст распакованного файла внутри архива
Далее – собираем XML структуру в ассоциативный массив
После чего – пробегаемся по элементам массива, записывая значения в итоговый массив $sst. ICONV используется только в случае, если у вас кодировка – не UTF-8
Что дальше? Дальше чуть сложнее. Двумерный массив с возможными ассоциациями

Собираем первый лист. Формируем XML, после чего проходимся по каждой строке row и разбираем каждю ячейку. Для получения атрибутов ячейки – используем свойство attributes(). Если атрибут ‘t’==’s’ – значит значение ячейки – это строка в ассоциативном массиве, полученном ранее.
После сбора строки в массив – соединяем в наш общий массив $data. На самом деле – вместо этого можно было бы сразу добавлять в таблицу, или использовать дополнительные проверки.
Все.

DataExpress

Дело сделано. Первый лист прочитан и собран в массив. Сколько строк получилось? 20. Можно было бы сжать сильнее, оптимизировать. Если интересна структура файла – берите архиватор ZIP и смело пытайте XLSX. У вас обязательно получится

  • Автор: kosmom
  • Рейтинг: 0
  • Просмотров: 3879
  • Комментариев: 5
  • Создан: 19.01.2012 14:17

Нравится (0)

Комментарии ()

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

Предусмотрено создание шаблонов для экспорта данных в Excel как с использованием встроенного механизма системы ZuluGIS, так и с помощью файлов шаблонов программы MS Excel, формата .xlt. Последний вариант предполагает вывод отчетов в виде таблиц с произвольным оформлением с использованием основных средств оформления программы Excel.

Для создания нового шаблона нажмите кнопку Новый в мастере экспорта в Excel (Рисунок 444, «Окно мастера экспорта данных в Microsoft Excel»), в результате откроется диалог параметров вывода отчета.

Рисунок 445. Диалог параметров вывода отчета

Для создания шаблона на базе механизма отчетов ZuluGIS установите переключатель Использовать собственные настройки. Создание подобных отчетов освещено выше, в разделе «Просмотр и печать отчетов».

Для создания шаблона на базе файла шаблона MS Excel:

  1. Установите переключатель Использовать настройки шаблона Excel (подробно см. «Файл шаблона в формате .xlt»).

  2. В поле Файл шаблона укажите путь к файлу шаблона. Для этого, нажмите кнопку справа от поля и укажите в открывшемся диалоге выбора файлов путь к файлу шаблона в формате .xlt.

  3. С помощью переключателя Тип отчета укажите тип отчета формируемого шаблоном, Табличный, либо Свободной формы (подробно см. «Файл шаблона в формате .xlt»), при выборе значения Свободной формы в поле Диапазон области данных также выбирается диапазон шаблона из которого формируется запись отчета.

  4. В таблице Соответствие полей и диапазонов шаблона указывается в каких именованных диапазонах шаблона отображаются поля базы данных. В столбце Поля перечислены поля базы данных, а в столбце Диапазон указываются соответствующие им диапазоны шаблона. По умолчанию, для полей подставляются диапазоны с соответствующими названиями (знаки подчеркивания в названии диапазона рассматриваются как пробелы).

По завершению настройки шаблона нажмите кнопку ОК, чтобы сохранить изменения и закрыть диалог.

Примечание

Существующий шаблон можно отредактировать, для этого в открывающемся списке в мастере экспорта в Excel выберите шаблон для редактирования и нажать кнопку Изменить, после внесения изменений нажмите кнопку ОК. Для удаления ненужного шаблона нажмите кнопку Удалить.

Создание и редактирование шаблонов экспорта данных в Excel

Шаблоны экспорта данных представляют собой файлы в формате шаблонов программы MS Excel (с расширением .xlt). Шаблоны можно создавать «с нуля», либо на базе уже существующих шаблонов.

В шаблонах для вывода данных из базы данных ZuluGIS применяются именованные ячейки и диапазоны ячеек листа Excel. В настройках вывода данных задается соответствие между полями базы данных и именами шаблона. При экспорте данных на базе такого шаблона поля базы данных слоя выводятся в места диапазонов шаблона с соответствующими именами.

Предусмотрены два режима вывода данных с помощью шаблона: табличный и в свободной форме, применяемый способ задается в настройках вывода данных (см. «Создание и редактирование шаблонов экспорта данных в Excel»).

Примечание

Для того чтобы задать имя для диапазона, выделите диапазон на листе MS Excel и введите в поле Имя (располагается с левого края строки формул, в нем отображается адрес текущей ячейки) название.

Для того чтобы изменить название или удалить имя диапазона, выполните команду меню MS Excel и в открывшемся диалоге выполните требуемые действия.

Внимание

В названиях полей и диапазонов следует использовать только буквы (латиницу и кириллицу), цифры и знаки подчеркивания (знаками подчеркивания следует использовать вместо пробелов).

Табличный вывод

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

Рисунок 446. Вывод отчета в табличном формате

Последовательность действий по созданию нового шаблона в табличном виде (на примере MS Excel 2003):

  1. Создайте новую книгу MS Excel.

  2. Добавьте в книгу постоянную информацию, которая должна присутствовать во всех книгах отчетов на базе данного шаблона (Листы с текстом, формулами, графиками и т.д.).

  3. Создайте лист для вывода отчета. В верхней части создайте шапку отчета (Название отчета, заголовки столбцов отчета и т.д.). Под шапкой задайте строку именованных диапазонов (обычно одиночных ячеек), которые будут служить основой таблицы отчета.

  4. Сохраните полученный шаблон в формате xlt.

Вывод в свободной форме

При выводе в свободной форме, для каждой записи отчета создается отдельная «карточка» произвольных размеров, Карточки в отчете выводятся одна под другой.

Как экспортировать любые данные из программы в Excel

Шаблон карточки создается в виде области листа Excel, в ячейках которой задается текст и оформление постоянной части карточки (одинаковой для всех формируемых карточек отчета) и именованными диапазонами отмечаются места для добавления полей из базы данных. Границы карточки задаются именованным диапазоном ячеек. Название этого диапазона указывается в поле Диапазон области данных настроек вывода данных.

Рисунок 447. Вывод отчета в свободной форме

Последовательность действий по созданию нового шаблона в свободной форме (на примере MS Excel 2003):

  1. Создайте новую книгу MS Excel.

  2. Добавьте в книгу постоянную информацию, которая должна присутствовать во всех книгах отчетов на базе данного шаблона (Листы с текстом, формулами, графиками и т.д.).

  3. Создайте лист для вывода данных. В ячейки листа добавьте постоянные детали карточки отчета, постоянные для всех карточек Название отчета, названия полей отчета и т.д. Для ячеек, в которые должны выводится данные из полей отчета задайте имена.

  4. Задайте границы карточки отчета. Для этого выделите диапазон ячеек по размеру создаваемой карточки и задайте для него имя. Для того чтобы каждая карточка печаталась на отдельной странице, укажите размер карточки по размерам страницы на печати.

  5. Сохраните полученный шаблон в формате xlt.

Примеры экспорта в Excel приведены далее (см. «Примеры экспорта данных в Microsoft Excel»).

Файл шаблона в формате .xlt

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

Описание

XLSX – представляет собой электронную книгу, созданную с помощью одной из версий программы Excel старше 2007 года. При этом данные имеют форму таблиц, состоящих из столбцов и строк. Каждая таблица разделена на ячейки, обладающие уникальным адресом, который состоит из цифирных и буквенных символов. Ячейки содержат данные, как введенные вручную, так и информацию, которая была получена в результате расчетов. Расширение допускает использование изображений, диаграмм и графической информации. Файлы XLSX форматируются на основе стандарта Open XML, позволяющего сжимать данные по типу ZIP. Архив сдержит файл для описания таблицы и отдельные файлы для каждого ее листа. Формат дает возможность разрабатывать и редактировать сложные многолистовые электронные таблицы со множеством формул и источников данных.

Технические детали

Использование расширения XLSX помогает оптимизировать содержимое файла, технологию управления и восстановления информации.

Формат существенно увеличивает возможности бинарных файлов устаревших вариантов программы Excel. Все приложения, отображающие XML, способны корректно работать с расширением XLSX. Благодаря сохранению данных в формате XML обеспечивается надежное хранение данных. Это дает возможность беспрепятственно передавать файлы по локальным сетям.

Программы

Microsoft Office

LibreOffice

Kingsoft Office

Google Docs

Основная программа

Microsoft Office

MIME type

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*