Експорт таблиці в xml. Імпорт декількох файлів даних XML як зовнішніх даних

18.09.2020 Поради

XML – мова розмітки, що розширюється. Він призначений для створення документів, які знаходять застосування у мережі. Він відрізняється від більш поширеного та відомого HTML лише тим, що надає можливість задавати власні теги та застосовувати їх надалі. Щоб працювати з такими документами, редагувати їх та вносити зміни, достатньо мати початкові знання у програмуванні, він легкий та простий у застосуванні. Але перш ніж використовувати такий документ, а тим більше редагувати його, необхідно знати,чим відкрити XML

Цей тип файлів має широке поширення, у зв'язку з чим популярність питання стає цілком виправданою. Оскільки документ містить текстову інформацію, то розумно припустити, що його відкриття можуть бути застосовні типи програм, підтримують текстовий формат.

Блокнот

Один з перших варіантів, який спадає на думку досвідченому користувачеві. Пов'язано це з тим, що здебільшого код HTML правиться саме в цій програмі, отже XML підтримає такий варіант.

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

Microsoft Word

Ще один варіантчим відкрити XML , На відміну від попереднього способу, сучасні версії текстового процесора відкривають файли в форматі, що легко читається. Тобто код розташовується у вигляді таблиці зручною для сприйняття. Завдяки кращому оглядувмісту спрощується і внесення правок в документ.

WordPad також підійде для перегляду вмісту XML-файлу. Для вибору програми необхідно клацнути по документу правою кнопкою миші і вибрати команду «відкрити за допомогою», у списку вибираємо потрібний текстовий редактор і отримуємо потрібний результат.

Notepad++

Багато хто вважає цю програму однією з найзручніших для перегляду та редагування XML-файлів. Насамперед - це обумовлено високою швидкістюроботи, на відміну Word, редактор відкриває за лічені секунди навіть найбільший документ, у своїй також швидко перебудовує вміст у таблицю.

Крім цього, програма має велику кількість можливостей, які не реалізовані в інших текстових редакторах. У разі недостатності наявних функцій відкритий код редактора завжди можна доповнити новими плагінами або модулями.

Microsoft Excel

Табличний редактор теж може відкрити і показати вміст потрібного документа. Зручність цієї програми полягає в тому, що вона автоматично надає вміст у вигляді зручної для сприйняття таблиці.

До недоліків використання можна віднести той факт, що через обмеження кількості рядків дуже великий XML-файл може не відкритися. Насампередчим відкрити XML-файлв , необхідно вибрати як спосіб XML-таблицю.

Спеціалізовані редактори

Якщо постає питаннячим відкрити XML щоб відредагувати його і внести зміни, краще віддати перевагу спеціальному софту. Є кілька варіантів таких розробок:

  • XML Editor від Oxygen;
  • Xsemmel;
  • XMLSpear.

Це далеко не всі варіанти, є інші програми, створені безпосередньо для роботи з файлами цього формату. Важливо розуміти, що кожна з них має власні можливості, які від інших аналогів. Тому вибирати софт потрібно у кожному конкретному випадку відповідно до потреб.

Чим відкрити XML в онлайн

Бувають ситуації, коли відкрити та переглянути вміст файлу XMLнеобхідно, але в комп'ютері немає жодної відповідної програми. Незважаючи на широкий вибір можливих варіантів, іноді трапляється і таке.

У цьому випадку користувач може звернутися до онлайн-сервісів.Чим відкрити XML через Інтернет?

Браузер

Цю можливість підтримують усі. Але важливо враховувати, що документ не містить інформації про те, як саме має бути відображено вміст, відповідно браузер відкриє його «як є».

Для того, щоб відкрити потрібний файл, необхідно клацнути по ньому правою кнопкою миші і вибрати відповідний браузер як програму, якщо браузер не відображається в списку відразу, то можна знайти його через «огляд». Файл буде відкритий в новій вкладці, якщо документ пошкоджений, то браузер не зможе його відкрити і доведеться шукати офлайн-варіант.

Xmlgrid.net

Найпопулярніший онлайн-сервіс для роботи з документами формату XML. Він дозволяє відкривати, переглядати та вносити зміни до документів.

Для роботи з редактором достатньо перейти на сторінку в інтернеті. За допомогою команди Open File завантажуємо потрібний документта виконуємо всі задумані дії.
Інтерфейс реалізований англійською мовою, але загалом усе інтуїтивно зрозуміло.

CodeBeautify

Ще один онлайн-інструмент придатний для роботи з файлами даного формату. Перш ніж розпочати діяльність потрібно пройти на сайт сервісу та вибрати тип документа, з яким планується робота.

Крім відкриття та редагування документа, сервіс дозволяє зробити конвертацію вмісту у різні формати.

XSL Transformation

Онлайн-сервіс призначений насамперед для перетворення та валідації наявного коду. Крім того, має чимало корисних інструментів, які стануть у нагоді майстру, який регулярно стикається з необхідністю взаємодії з документами формату XML.

Таким чином, при необхідності роботи з мовою, що розширюється, завжди можна знайти відповідну програму або онлайн-сервіс, незалежно від можливостей ПК. Проте більшість інструментів дозволяють лише переглянути вміст і перетворити його на зручну для сприйняття таблицю. Для професійної роботи з XML варто віддати перевагу спеціалізованим програмам.

XML – це універсальний форматроботи із даними. Його підтримує безліч програм, зокрема зі сфери СУБД. Тому конвертація інформації в XML важлива саме з точки зору взаємодії та обміну даними між різними додатками. Excel якраз входить до програм, які працюють з таблицями, і навіть може виконувати маніпуляції з базами даних. Розберемося, як конвертувати файли Ексель у XML.

Конвертація даних у формат XML не такий вже простий процес, тому що в його ході має бути створена спеціальна схема (schema.xml). Втім, для перетворення інформації на найпростіший файлданого формату достатньо мати під рукою звичайні інструменти збереження в Excel, а для створення добре структурованого елемента доведеться грунтовно повозитися зі складанням схеми і її підключенням до документа.

Спосіб 1: просте збереження

В Excel можна зберегти дані у форматі XML, просто скориставшись меню "Зберегти як…". Щоправда, немає гарантії, що потім усі програми коректно працюватимуть із файлом, який був створений у такий спосіб. Та й не у всіх випадках цей спосіб працює.


Таким чином, перетворення файлу з формату Excel на XML буде здійснено.

Спосіб 2: інструменти розробника

Конвертувати формат Excel у XML можна за допомогою інструментів розробника на вкладці програми. При цьому якщо користувач все виконає правильно, то на виході він отримає, на відміну від попереднього способу, повноцінний XML-файл, який коректно сприйматиметься сторонніми додатками. Але відразу треба сказати, що не кожному новачкові може вистачити знань та умінь одразу навчиться конвертувати дані таким способом.

  1. За промовчанням вкладку інструментів розробника вимкнено. Тому насамперед потрібно її активувати. Переходимо у вкладку "Файл"та клацаємо по пункту «Параметри».
  2. У вікні параметрів, що відкрилося, переміщуємося в підрозділ «Налаштування стрічки». У правій частині вікна встановлюємо галочку біля значення «Розробник». Після цього тиснемо на кнопку "OK", розміщену у нижній частині вікна. Вкладку інструментів розробника тепер увімкнено.
  3. Далі відкриваємо таблицю Excel у програмі будь-яким зручним способом.
  4. На її основі ми маємо створити схему, яка формується в будь-якому текстовому редакторі. Для цього можна використовувати і звичайний Блокнот Windows, але краще застосовувати спеціалізований додаток для програмування та роботи з мовами розмітки. Запускаємо цю програму. У ньому створюємо схему. На нашому прикладі вона виглядатиме, як показано знизу на скріншоті вікна Notepad++.

    Як бачимо, що відкриває і закриває тегом для документа в цілому служить "data-set". У цій ролі для кожного рядка виступає тег «record». Для схеми цілком буде достатньо, якщо ми візьмемо всього два рядки таблиці, а не перекладатимемо її всю вручну в XML. Назва стовпця, що відкриває і закриває, може бути довільним, але в даному випадку для зручності ми вважали за краще просто перекласти російськомовні найменування колонок на англійська мова. Після того, як дані внесені, просто зберігаємо їх через функціонал текстового редакторабудь-де на жорсткому диску у форматі XML під назвою «Schema».

  5. Знову переходимо до програми Excel із вже відкритою таблицею. Переміщуємося у вкладку «Розробник». На стрічці у блоці інструментів "XML"клацаємо по кнопці «Джерело». У полі, що відкрилося, в лівій частині вікна тиснемо на кнопку «Карти XML…».
  6. У вікні, що клікаємо по кнопці «Додати…».
  7. Запуститься вікно вибору джерела. Переходимо в директорію розташування схеми складеної раніше, вибираємо її та клацаємо по кнопці «Відкрити».
  8. Після того, як елементи схеми з'явилися у вікні, перетягуємо їх за допомогою курсору у відповідні осередки найменування стовпців таблиці.
  9. Клацаємо правою кнопкою миші по отриманій таблиці. У контекстному менюпослідовно переходимо по пунктах "XML"і «Експорт…». Після цього зберігаємо файл у будь-якій директорії.

Як бачимо, існують два основні способи конвертації файлів XLSта XLSX у формат XML програмою Microsoft Excel. Перший з них гранично простий і полягає в елементарній процедурі збереження із заданим розширенням через функцію "Зберегти як…". Простота і зрозумілість цього варіанта, безперечно, є перевагами. Але він має один дуже серйозний недолік. Перетворення виконується без урахування певних стандартів, і тому файл, що конвертується таким способом, сторонніми програмами може просто не розпізнаватись. Другий варіант передбачає складання картки XML. На відміну від першого способу таблиця, перетворена за даною схемою, буде відповідати всім стандартам якості XML. Але, на жаль, не кожен користувач зможе швидко розібратися з нюансами цієї процедури.

Під час створення системи електронного документообігу знадобилося реалізувати функції експорту даних у популярних форматах. Зокрема, у форматі Microsoft Excel. Вимоги до експорту були прості – експортувати дані з мінімумом форматування, тобто. жодних об'єднаних осередків, ігор зі шрифтами тощо. Формати експорту XLSX та Excel XML.

В даному випадку розповім про Excel XML.

Отже, у будь-якій системі оперує табличними даними раною чи пізно виникає потреба експорту даних. Цілі експорту різні:

Реалізувати в класі набір функцій для запису значень осередків та ряду – основна вимога, яка передбачає створення функцій для запису значень осередків зазначених типів та можливість запису готового ряду до файлу.

Можливість роботи з необмеженим обсягом даних - зрозуміло, сам клас експорту відповідати за записуваний обсяг не зможе, але він повинен надати функції для запису даних на диск та звільнення оперативної пам'ятідля наступної порції даних.

Крім описаних вимог, потрібно додати сервісні функції:

  • Увімкнення автофільтра
  • Стиснення файлу в zip.

Реалізація

Насамперед, при створенні класу здійснюю перевірку кінцевого імені файлу та запитую кількість колонок та рядів. Файл повинен мати коректне ім'я, а папка, в яку буде збережено, повинна існувати. Все як завжди.
Формат Excel XML дозволяє зберігати у файлі інформацію про користувача, який його створив, тому при створенні заголовка записую назву організації, інформація про користувача та дату створення файлу.

Public function writeDocumentProperties($organization = null, $user = null) ( fwrite($this->file, " "); if (!is_null($user)) ( fwrite($this->file, " ".$user->description.""); fwrite($this->file, " ".$user->description.""); ) $dt = новий Datetime(); $dt_string = $dt->format("Y-m-d\TH:i:s\Z"); fwrite($this->file, " ".$dt_string.""); fwrite($this->file, " ".$dt_string.""); if (!is_null($organization)) fwrite($this->file, " ".$organization->name.""); fwrite($this->file, " 12.00"); fwrite($this->file, ""); }
Щоправда, у цій функції використовуються сутності системи документообігу - organization (організація) і user (користувач). Замінити ці сутності на, скажімо, строкові значення не проблема.

Найцікавішою в заголовку є інформація про стилі. У форматі Excel XML вони реалізовані дуже зручно, тому просто створюю таблицю зі стилями для рядків, дати/часу та гіперпосилання.

Public function writeStyles() ( fwrite($this->file, ""); //default style fwrite($this->file, ""); //Datetime style fwrite($this->file, ""); fwrite($this->file, ""); fwrite($this->file, ""); //Hyperlink style fwrite($this->file, ""); //Bold fwrite($this->file, ""); fwrite($this->file, ""); }

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

Public function openWorksheet() ( fwrite($this->file, " "); fwrite($this->file, strtr("

", array("(col_count)"=>$this->colCount, "(row_count)"=>$this->rowCount))); )
Але запис рядів – процес цікавіший. Клас повинен працювати швидко і обробляти необмежений обсяг даних, адже записів може бути тисяч сто чи навіть мільйон! Хочеш швидкості – працюй із пам'яттю, хочеш необмежений обсяг даних – працюй із диском. Щоб помирити вимоги, реалізував функції resetRow і flushRow.
Перша – очищає поточний ряд, після чого його можна знову наповнювати даними, а друга – записує поточний ряд у відкритий файл на диск. Їх спільне використання дозволяє витримувати баланс між швидкістю та обсягом пам'яті, що використовується.

Public function resetRow() ( $this->currentRow = array(); ) public function flushRow() ( fwrite($this->file, implode("", $this->currentRow)); unset($this-> currentRow); )
Кожна комірка записується функцією відповідної типу даних, саме appendCellxxx, де xxx – тип даних. Допустимі типи даних: Num, String, Real, DateTime, Date, Time, Link. Приклад функції для запису числового значення:

Public function appendCellNum($value) ( ​​$this->currentRow = " ".$value.""; }
Після запису всіх даних залишається закрити робочий лист та робочу книгу.

Застосування

Використання описаного класу ґрунтується на експорті даних за допомогою провайдера CArrayDataProvider. Однак, припускаючи, що обсяг даних, що експортуються, може виявитися дуже великим застосований спеціальний ітератор CDataProviderIterator , який перебирає повертаються дані по 100 записів (можна вказати інше число записів).

Public function exportExcelXML($organization, $user, &$filename) ( $this->_provider = new CArrayDataProvider(/*query*/); Yii::import("ext.AlxdExportExcelXML.AlxdExportExcelXML"); $export = new AlxdExportExcelXML ($filename, count($this->_attributes), $this->_provider->getTotalItemCount() + 1), $export->openWriter(); organization, $user), $export->writeStyles(); $export->openWorksheet(); //title row $export->resetRow(); $code => $format) $export->appendCellString($this->_objectref->getAttributeLabel($code)), $export->closeRow(); $export->flushRow(); = New CDataProviderIterator($this->_provider, 100); foreach ($rows as $row) ( $export->resetRow(); $export->openRow(); foreach ($this->_attributes as $code => $format) ( switch ($format->type) ( case "Num": $export->appendCellNum($row[$code]); /*other types*/ default: $export->appendCellString(""); ) ) $export->closeRow(); $export->flushRow(); ) //close all $export->closeWorksheet(); $export->closeWorkbook(); $export->closeWriter(); //zip файл $export->zip(); $filename = $export->getZipFullFileName(); )
У моєму випадку, кожен ряд записується на диск, що поки є цілком прийнятним, але в майбутньому, можливо, вимагатиме змін. Наприклад, розумно зберігатиме не кожен ряд, а кожен десяток або навіть сотню рядів за раз. Тоді швидкість експорту збільшиться.

Швидкість

До речі, на власному досвіді переконався, наскільки важливо припускати можливість існування великих обсягів даних при пакетній операції, такій як експорт.
Спочатку, намагався здійснювати експорт даних використовуючи

Працюючи з блочними даними нерідко виникає потреба їх конвертації на інші формати, як кажуть, для кращого взаємодії. У цій статті будуть наведені можливі конвертери XML у XLS. Іншими словами, ми розповімо про способи перетворення одного формату на інший.

Спосіб 1: за допомогою програми Excel

Зважаючи на те, що Excel бездоганно працює з файлами блочного формату, то й розширення XML вона може відкрити без проблем. Так що можна без сорому сказати сказати, що Excel - це конвертер XML в XLS. Розглянемо, як все ж таки перетворити формат за його допомогою:

  1. Відкрийте Excel.
  2. На панелі натисніть "Файл".
  3. Клацніть на опції «Відкрити».
  4. У вікні «Провідника», що з'явилося, перейдіть в директорію з XML-файлом і відкрийте його.
  1. Знову відкрийте вкладку «Файл».
  2. Виберіть «Зберегти як».
  3. Перейдіть до директорії, до якої потрібно помістити змінений документ.
  4. У списку «Тип файлу», що випадає, визначте пункт «Книга Excel».
  5. Збережіть файл, натиснувши кнопку.

Після всіх вищеописаних маніпуляцій файл, який спочатку мав розширення XML, перетвориться на книгу Excel, тобто буде мати розширення XLS.

Спосіб 2: опція "Імпорт даних" в Excel

Excel - конвертер XML XLS з двома способами виконання цього завдання. Тому перейдемо безпосередньо до другого варіанту, який передбачає використання опції Імпорт даних. Але перед початком треба увімкнути меню «Розробник», оскільки саме в ньому знаходиться потрібний інструмент. Далі потрібно зробити таке:

  1. Відкрийте програму.
  2. Перейдіть до меню "Файл".
  3. Виконайте розділ «Параметри».
  4. Відкрийте меню "Налаштування стрічки".
  5. Поставте позначку поруч із рядком «Розробник», який знаходиться у правій області вікна.
  6. Натисніть кнопку ОК.

Потрібна панель інструментів винесена в інтерфейс програми, а це означає, що ми можемо починати конвертацію:

  1. Перейдіть на вкладку «Розробник».
  2. На панелі інструментів виберіть «Імпорт».
  3. Відкриється вікно, де потрібно вибрати файл формату XML.
  4. З'явиться вікно із пропозицією створити схему на основі даних. Натисніть кнопку ОК.
  5. Після цього з'явиться друге вікно, в якому вам потрібно визначитися з місцем розташування таблиці, що імпортується. Клацніть на клітинці A1 і натисніть ОК.

Файл імпортується до програми Excel. Тепер його можна зберегти як XLS. Для цього за аналогією з попередньою інструкцією відкрийте вкладку «Файл», клацніть «Зберегти як», вкажіть директорію, виберіть формат і збережіть.

Спосіб 3: за допомогою інтернет-сервісу

Може статися, що вам знадобиться конвертер XLS в XML для ПДВ, наприклад. В цьому випадку Excel не допоможе, і потрібно звернутися до іншої програми. У даному випадку поговоримо про онлайн-сервіс Convertio:

  1. У будь-якому браузері перейдіть на головну сторінку даного сервісу.
  2. Виберіть спосіб завантаження файлу. Якщо він розташований на диску, натисніть кнопку «З комп'ютера» і виберіть його в файловому менеджері. Якщо в «хмарі», виберіть саме сховище, а потім файл.
  3. Документ доданий та готовий до конвертації. Для цього зі списку праворуч потрібно вибрати формат XML.
  4. Натисніть кнопку «Перетворити».

Після цього файл буде підготовлений, і вам залишиться лише скачати. Convertio - це не лише конвертер XLS у XML-файли. Він здатний працювати з куди великою кількістюформатів. Просто завантажуйте файл, а потім вибирайте формат, який хочете його перетворити.

Ось ми й розглянули конвертори XML у XLS і навпаки. Як можна відзначити, для конвертації XML відмінно підходить програма Excel. Однак вона не може перетворити XLS, тому для цього потрібно вдаватися до інших програм. У цьому випадку це онлайн-сервіс Convertio.

Ті, хто володіє чудовою програмою TextKit, або принаймні чули про неї, (хто не чув, терміново) повинні були помітити серед її можливостей розбір XML-документів у будь-який шаблон. Тобто, якщо у нас є XML документ, ми без проблем готуємо сайт за допомогою ТекстКита.

Залишається одна маленька проблема, як отримати цей XML. Насправді, для створення сайту можна брати готові документи різних партнерок, типу МіксМаркета або Озона . Але про них якось іншим разом. Я розповім, як отримати XML із звичайної XLS-таблиці. Фактично це формат MS Excel.

Володіння цим знанням дозволить нам робити сайти за допомогою ТекстКіту з будь-яких баз в Екселі. Працюватимемо у 2007-му офісі.

1) Завантажуємо надбудову для роботи з XML звідси.

2) Заходимо до головного меню екселю, параметри.

3) У меню вибираємо «Надбудова». Шукаємо пункт «Управління», вибираємо «Надбудови Excel» і тиснемо «Перейти»:

4) У вікні, що відкрилося, через «Огляд» вибираємо потрібний нам файл XmlTools.xlaДодаємо його в панель і активуємо, поставивши галочку навпроти нього.

За замовчуванням цей файл зберігається у наступній папці на жорсткому диску:
\Office Samples\OfficeExcel2003XMLToolsAddin.

5) Якщо ви все зробили правильно, то в "Параметрах" у розділі "Надобудови" ви побачите встановлене розширення:

Тепер беремо наші дані для створення XML документата працюємо з ними.

1) Тиснемо на кнопку на панелі. Вибираємо перший пункт:

2) У вікні, що з'явилося, вибираємо yes/no якщо наші дані містять / не містять заголовка, в моєму випадку містять, тому переставляю галочку на yes. Тут же затискаємо маленьку піпку, щоб вибрати осередки з даними:

3) Протягуванням вибираємо дані для створення XML - документа. Віджимаємо "піпку" і тиснемо ОК.

Якщо все зробили правильно, то табличка стане синьо-білою, і меню дуже зміниться:

Ну вже майже все. Тепер йдемо у параметри збереження документа і там вибираємо XML – дані.

Власне, ось і все! Ми отримали на виході готовий XML-документ, який без проблем можемо розібрати в парсері. Але про це якось іншим разом 🙂