admin / 03.10.2018
.
.
Наверняка многие думают, что 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. На самом деле – вместо этого можно было бы сразу добавлять в таблицу, или использовать дополнительные проверки.
Все.
Содержание
Дело сделано. Первый лист прочитан и собран в массив. Сколько строк получилось? 20. Можно было бы сжать сильнее, оптимизировать. Если интересна структура файла – берите архиватор ZIP и смело пытайте XLSX. У вас обязательно получится
Нравится (0)
В режиме работы окна семантической информации Ответ или База предусмотрен экспорт соответствующего набор записей в лист Microsoft Excel для последующего анализа. Для экспорта данных в Microsoft Excel:
Предусмотрено создание шаблонов для экспорта данных в Excel как с использованием встроенного механизма системы ZuluGIS, так и с помощью файлов шаблонов программы MS Excel, формата .xlt. Последний вариант предполагает вывод отчетов в виде таблиц с произвольным оформлением с использованием основных средств оформления программы Excel.
Для создания нового шаблона нажмите кнопку Новый в мастере экспорта в Excel (Рисунок 444, «Окно мастера экспорта данных в Microsoft Excel»), в результате откроется диалог параметров вывода отчета.
Рисунок 445. Диалог параметров вывода отчета
Для создания шаблона на базе механизма отчетов ZuluGIS установите переключатель Использовать собственные настройки. Создание подобных отчетов освещено выше, в разделе «Просмотр и печать отчетов».
Для создания шаблона на базе файла шаблона MS Excel:
Установите переключатель Использовать настройки шаблона Excel (подробно см. «Файл шаблона в формате .xlt»).
В поле Файл шаблона укажите путь к файлу шаблона. Для этого, нажмите кнопку справа от поля и укажите в открывшемся диалоге выбора файлов путь к файлу шаблона в формате .xlt.
С помощью переключателя Тип отчета укажите тип отчета формируемого шаблоном, Табличный, либо Свободной формы (подробно см. «Файл шаблона в формате .xlt»), при выборе значения Свободной формы в поле Диапазон области данных также выбирается диапазон шаблона из которого формируется запись отчета.
В таблице Соответствие полей и диапазонов шаблона указывается в каких именованных диапазонах шаблона отображаются поля базы данных. В столбце Поля перечислены поля базы данных, а в столбце Диапазон указываются соответствующие им диапазоны шаблона. По умолчанию, для полей подставляются диапазоны с соответствующими названиями (знаки подчеркивания в названии диапазона рассматриваются как пробелы).
По завершению настройки шаблона нажмите кнопку ОК, чтобы сохранить изменения и закрыть диалог.
![]() |
Примечание |
---|---|
Существующий шаблон можно отредактировать, для этого в открывающемся списке в мастере экспорта в Excel выберите шаблон для редактирования и нажать кнопку Изменить, после внесения изменений нажмите кнопку ОК. Для удаления ненужного шаблона нажмите кнопку Удалить. |
Шаблоны экспорта данных представляют собой файлы в формате шаблонов программы MS Excel (с расширением .xlt). Шаблоны можно создавать «с нуля», либо на базе уже существующих шаблонов.
В шаблонах для вывода данных из базы данных ZuluGIS применяются именованные ячейки и диапазоны ячеек листа Excel. В настройках вывода данных задается соответствие между полями базы данных и именами шаблона. При экспорте данных на базе такого шаблона поля базы данных слоя выводятся в места диапазонов шаблона с соответствующими именами.
Предусмотрены два режима вывода данных с помощью шаблона: табличный и в свободной форме, применяемый способ задается в настройках вывода данных (см. «Создание и редактирование шаблонов экспорта данных в Excel»).
![]() |
Примечание |
---|---|
Для того чтобы задать имя для диапазона, выделите диапазон на листе MS Excel и введите в поле Имя (располагается с левого края строки формул, в нем отображается адрес текущей ячейки) название. |
Для того чтобы изменить название или удалить имя диапазона, выполните команду меню MS Excel и в открывшемся диалоге выполните требуемые действия.
![]() |
Внимание |
---|---|
В названиях полей и диапазонов следует использовать только буквы (латиницу и кириллицу), цифры и знаки подчеркивания (знаками подчеркивания следует использовать вместо пробелов). |
Табличный вывод
При табличном выводе, в шаблоне задается строка именованных диапазонов, и отчет формируется в виде таблицы, поля первой записи выводятся в диапазоны с соответствующим именами, вторая запись – в ячейки строкой ниже и т.д. При этом в отчете, над таблицей выводится шапка отчета, строки, располагающиеся в шаблоне над поименованными диапазонами.
Рисунок 446. Вывод отчета в табличном формате
Последовательность действий по созданию нового шаблона в табличном виде (на примере MS Excel 2003):
Создайте новую книгу MS Excel.
Добавьте в книгу постоянную информацию, которая должна присутствовать во всех книгах отчетов на базе данного шаблона (Листы с текстом, формулами, графиками и т.д.).
Создайте лист для вывода отчета. В верхней части создайте шапку отчета (Название отчета, заголовки столбцов отчета и т.д.). Под шапкой задайте строку именованных диапазонов (обычно одиночных ячеек), которые будут служить основой таблицы отчета.
Сохраните полученный шаблон в формате xlt.
Вывод в свободной форме
При выводе в свободной форме, для каждой записи отчета создается отдельная «карточка» произвольных размеров, Карточки в отчете выводятся одна под другой.
Шаблон карточки создается в виде области листа Excel, в ячейках которой задается текст и оформление постоянной части карточки (одинаковой для всех формируемых карточек отчета) и именованными диапазонами отмечаются места для добавления полей из базы данных. Границы карточки задаются именованным диапазоном ячеек. Название этого диапазона указывается в поле Диапазон области данных настроек вывода данных.
Рисунок 447. Вывод отчета в свободной форме
Последовательность действий по созданию нового шаблона в свободной форме (на примере MS Excel 2003):
Создайте новую книгу MS Excel.
Добавьте в книгу постоянную информацию, которая должна присутствовать во всех книгах отчетов на базе данного шаблона (Листы с текстом, формулами, графиками и т.д.).
Создайте лист для вывода данных. В ячейки листа добавьте постоянные детали карточки отчета, постоянные для всех карточек Название отчета, названия полей отчета и т.д. Для ячеек, в которые должны выводится данные из полей отчета задайте имена.
Задайте границы карточки отчета. Для этого выделите диапазон ячеек по размеру создаваемой карточки и задайте для него имя. Для того чтобы каждая карточка печаталась на отдельной странице, укажите размер карточки по размерам страницы на печати.
Сохраните полученный шаблон в формате xlt.
Примеры экспорта в Excel приведены далее (см. «Примеры экспорта данных в Microsoft Excel»).
Описание
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