Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше
Если вы видите это сообщение в Excel, это означает, что вы пытаетесь импортировать XML-файл, который Excel не понятна как действительная схема.
Например, это может произойти, если попытаться импортировать XSD-файл, а не XML-файл.
Чтобы исправить ошибку, проверьте XML-файл, который вы пытаетесь импортировать, чтобы убедиться, что он правильно отформатирован и отформатирован.
Если вы больше не хотите видеть сообщения такого типа, выберите В будущем, не показывать это сообщение.
Нажмите кнопку ОК, Excel продолжить импорт. Обратите внимание Excel создает новую схему для XML-файла путем анализа данных, включенных в файл. Результат может быть не тем, что вы ожидаете.
Как отменить импорт?
Если нажать кнопку Закрыть в диалоговом окне, Excel продолжите импорт и откроется диалоговое окно Импорт данных. Если вы хотите отменить импорт, нажмите кнопку Отмена в диалоговом окне Импорт данных.
Нужна дополнительная помощь?
When I create a XML file using the XmlSerializer
and attempt to open it in excel I get the following message:
The specified XML source does not refer to a schema.
Excel will create a schema based on the XML source data.
Is there any way to include the schema in the xml file so Excel (or any other program) does not need to calculate it?
Here is a example program showing how I am creating my xml file.
namespace Sandbox_Console
{
internal class Program
{
private static void Main()
{
List<MyClass> test = new List<MyClass>();
test.Add(new MyClass() { Name = "Test", Foo = "Shazam"});
test.Add(new MyClass() { Name = "Test2", Foo = "Shazam2" });
XmlSerializer ser = new XmlSerializer(typeof (List<MyClass>));
using (var file = new FileStream(@"C:UserssrchamberlainDesktoptest.xml", FileMode.Create))
{
ser.Serialize(file, test);
}
}
}
public class MyClass
{
[XmlAttribute]
public string Name { get; set; }
[XmlElement]
public string Foo { get; set; }
}
}
The generated XML
<?xml version="1.0"?>
<ArrayOfMyClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MyClass Name="Test">
<Foo>Shazam</Foo>
</MyClass>
<MyClass Name="Test2">
<Foo>Shazam2</Foo>
</MyClass>
</ArrayOfMyClass>
In my real file that I am generating the file size is over 300 MB large and it is taking a long time for the data to be parsed out, my hope is that by providing the schema it can decrease the time it takes to process the file.
Сегодня предлагаю почувствовать себя немножко разработчиком и написать самостоятельно код. Создать xml документ, зашифровав в нем необходимые вам данные – список сотрудников с информацией о каждом человеке или какой-то отчет. Таким образом, вы напишете код для базы данных, которую можно использовать для открытия таблиц в Excel.
Многим кажется, что подобный текст с кодом может написать только разработчик, но на самом деле с этой задачей может справиться и начинающий пользователь. Главное – уловить общий принцип и правила построения кода (об этом и поговорим в статье). Дальше вы сможете создавать иерархию из каких угодно данных.
Содержание
- «Блокнот»
- Как проверить, что правильно написали код
- Visual Studio
- Code Writer
- Онлайн-сервис Tutorialspoint
- Microsoft Excel
«Блокнот»
Скачивать дополнительные программы для программирования не нужно. Написать текст на языке разметки xml можно во встроенной редакторе Windows – в «Блокноте». Вместо него можно взять Wordpad или даже Microsoft Word. Главное – в конце сохранить файл в нужном формате, а не как обычно в txt или doc.
Единственный недостаток этот способа – вам не будут подсвечивать ошибки в коде, как в программах Visual Studio и Code Writer. К тому же, можно запутаться в иерархии, если это сложная структура с множеством ответвлений. Поэтому способ подойдет для создания относительно небольших файлов.
Рассказываю пошагово, что делать:
- Откройте папку в «Проводнике Windows», в которой хотите сохранить xml-документ. Кликните по пустой области правой кнопкой мыши. Выберите «Создать», а затем «Текстовый документ».
- Можете сразу ввести название файла. Кликните по нему дважды, чтобы запустить. В зависимости от того, какая программа для открытия txt установлена по умолчанию, документ запустится в WordPad или в «Блокноте».
- Также можно кликнуть по файлу правой кнопкой. Выбрать «Открыть с помощью» и указать конкретное приложение для запуска.
- Еще дин способ создать текстовый документ в «Блокноте»: вызовите меню «Пуск», раскройте папку «Стандартные», запустите пустое окно программы с помощью одноименного ярлыка.
- Теперь приступим к написанию кода. Первое, что вы должны ввести в качестве текста:
<?xml version="1.0" encoding="utf-8"?>
. Эта строчка говорит о том, что созданный документ поддерживает язык XML версии 1.0 и работает с кодировкой UTF-8. Чаще всего кодировку используют именно такую, потому что ее поддерживает большинство программ. - Теперь создайте первый каталог. Для этого пропишите в следующей строке тег
<root>
. Это открывающий тег формата <>. Вместо слова «root» можно ввести любое другое. И в целом – названия всех тегов можете выбирать самостоятельно под ваш случай. Когда введем данные для тега, завершим его другим словом вот такого формата:</root>
(где после первого знака идет косая черта «/»). - Внутри первого тега напишите нужные вам данные. Например, создадим вложенный тег-каталог
<Employee>
. Внутри него будет имя сотрудника компании (name) – Екатерина Васильева. Далее внутри тега <Employee> создадим два вида данных. Первый – возраст сотрудника:<Age>28</Age>
(сразу открываем и закрываем тег в одной строке). Второй – должность:<Author>Да</Author>
(здесь показываем, является человек автором (author) статей, к примеру, или нет). Когда написали данные об одном человеке, закрываем тег – пишем:</Employee>
. - Далее введите данные для второго человека – таким же образом.
- Финальный штрих – напишите закрывающий тег
</root>
, о котором я упомянула в шестом шаге. - Теперь нажмите «Файл». Выберите «Сохранить как». Либо зажмите комбинацию клавиш «Ctrl + Shift + S».
- Выберите папку для сохранения. Введите имя файла. После точки укажите расширение xml. В типе файлов поставьте «Все файлы». Выберите кодировка «UTF-8». Щелкните «Сохранить».
Примерно так и выглядят все XML-файлы. В моем примере вы увидели структуру с данными, состоящую из нескольких иерархических ступеней. Вначале идет тег <root></root>
. В него вложен каталог <Employee></Employee>
, которому присвоен атрибут «name» с именем сотрудника. А уже в нем находятся данные «Age» и «Author».
Таких сотрудников («Employee») у нас два. По каждому есть данные о возрасте и должности. В своем случае вы можете расширить тег, указав больше информации о людях: дата приема на работу, контакты, город и т. д.
В каждом теге можете создавать свое количество каталогов, чтобы в итоге получилась уникальная структура. Главное в этом деле не запутаться и не забывать ставить закрывающий тег </>
в конце каждого каталога.
Как проверить, что правильно написали код
Посмотреть, работает ли введенный вами код, можно с помощью программы Microsoft Excel. Попробуйте открыть xml-файл в Excel. Если все написано верно, на экране появится таблица с данными, которые зашифрованы в коде.
В нашем блоге есть отдельная статья о том, как превратить документ xml в таблицу Excel. Но я вкратце покажу, как это сделать:
- Запустите пустое окно Excel – с помощью ярлыка на рабочем столе или в меню «Пуск».
- Нажмите «Открыть другие книги».
- Попробуйте найти свой документ в списке недавних справа либо кликните «Обзор».
- Найдите файл в «Проводнике Windows». Выделите его и щелкните «Открыть».
- Выберите формат «XML-таблица» и кликните «ОК».
- В новом диалоговом окне появится уведомление о том, что указанный источник XML не ссылается на схему. Excel предложит создать эту схему на основе данных файла, то есть на основе текста, который вы только что ввели в «Блокноте». Щелкните «ОК».
- В итоге перед вами появится таблица. В моем случае она будет состоять из трех столбцов с именем, возрастом и должностью двух сотрудников.
- Если при импорте xml появилось окно с ошибкой, значит, с написанным вами кодом что-то не так. Кликните «Сведения», чтобы узнать, что именно.
- В пункте «Причина» будет указано, из-за чего появилась ошибка чтения. Устраните ее и повторите попытку запуска. В моем случае это был незакрытый тег. Не забывайте, что каждый тег нужно закрывать с помощью скобок формата </>.
Visual Studio
У компании Microsoft есть фирменная программа для создания кода – Visual Studio. Она поддерживает множество языков программирования и разметки, в том числе XML. Несмотря на то, что это профессиональный инструмент, разобраться в нем может даже начинающий пользователь.
Сейчас помогу вам это сделать:
- Запустите программу. Раскройте меню «File» и выберите «New File».
- Кликните по ссылке «Select language».
- Введите запрос c названием языка в поисковую строку и выберите xml.
- Напишите код с учетом всех правил из предыдущего раздела статьи.
- Снова раскройте меню «File». Нажмите «Save As».
- Выберите папку для сохранения, впишите нужное название. В меню «Тип файла» уже будет указан xml – дополнительно выбирать формат не нужно. Щелкните «Сохранить».
Code Writer
Есть программа с интерфейсом попроще – Code Writer. Ее можно скачать из магазина приложений Microsoft Store. Подходит только для версий Windows 10 и выше.
Как пользоваться приложением:
- Установите и запустите программу – с помощью ярлыка на рабочем столе или в меню «Пуск». Также можете воспользоваться поиском по системе.
- Кликните по кнопке «New». Выберите «XML».
- В первой строчке автоматически появится фраза <?xml version=»1.0″ encoding=»utf-8″?>. Вам ее писать уже не нужно.
- Теперь введите код с учетом всех правил, которые я описала в разделе «Блокнот». Когда закончите редактирование, кликните по дискете – выберите «Save As».
- Укажите папку для хранения документа, название и щелкните «Сохранить».
Онлайн-сервис Tutorialspoint
На сайте Tutorialspoint есть инструменты для работы с изображениями, файлами XML и HTML. Редактор XML позволяет открывать и редактировать готовые файлы, а также создавать новые с нуля.
Интерфейс тоже на английском языке, но интуитивно понятный. Окно будет поделено на две части. В первой будет редактор кода, во второй – визуализация структуры в виде иерархических блоков.
Как пользоваться сервисом:
- Зайдите на сайт и выберите инструмент «XML Editor».
- В редакторе уже появится шаблон кода с базой данных сотрудников компании. Можете использовать его для составления своего текста: просто поменяйте данные людей и затем скачайте код в виде отдельного файла на ПК.
- Если шаблон вам не подходит, можете стереть текст и создать свой с нуля. Когда будете вводить первый открывающий тег (в нашем случае это <root>) и закроете скобку, автоматически появится закрывающий – </root>. Чтобы ввести данные внутри созданного каталога, поставьте курсор между тегами и нажмите на «Enter». Так они окажутся на разных строчках.
- Далее начните вводить первый название вложенного каталога – после открывающего тега сразу появится закрывающий.
- Чтобы ввести атрибут имени для каталога <Employee>, внутри скобок поставьте пробел и введите слово «name». Далее поставьте «=» и открывающую скобку для цитаты – вторая появится автоматически. Внутри этих скобок введите имя.
- Далее впишите данные о первом человеке и создайте такие же каталоги для второго и последующих сотрудников.в
- Справа будет удобно показана иерархия каталогов. Она будет меняться по мере редактирования кода. Когда закончите, кликните «Download».
- Выберите папку для сохранения файла, название и подтвердите скачивание.
Microsoft Excel
Если у вас уже есть таблица со встроенной схемой XML, писать код самостоятельно не нужно. Отредактируйте таблицу – добавьте или удалите данные, а затем сохранить ее в другом формате в самом интерфейсе Excel. Таким образом вы сконвертируете xlsx-файл в xml.
Показываю по шагам, что нужно сделать:
- Откройте таблицу и внесите какие-либо изменения в нее. Далее нажмите «Файл».
- Во вкладке «Сохранить как» щелкните «Обзор».
- В меню «Тип файла» укажите «XML-данные».
- Выберите папку, напишите имя и подтвердите сохранение.
***
Писать код xml можно не только в профессиональных программах по типу Visual Studio и Code Writer, но и в обычном «Блокноте» – стандартном приложении Windows. Самое важное, что не нужно забывать при написании кода – закрывать открытые каталоги с помощью тега </>
. Можно создать иерархию каталогов любой глубины и сложности в зависимости от количества данных, которые вы хотите зашифровать.
Если не хотите разбираться в тонкостях составления кода, и у вас есть таблица с необходимыми данными, просто сохраните ее с расширением xml в самом Excel.
Если вы ранее создали карту XML,вы можете использовать ее для импорта данных XML в ячейки, которые соеряду, но существуют также несколько способов и команд импорта данных XML без карты XML.
При наличии карты XML сделайте следующее для импорта данных XML в сопоставленные ячейки:
-
В карте XML выберите одну из сопоставленных ячеек.
-
На вкладке Разработчик нажмите кнопку Импорт.
Если вкладка Разработчик не отображается, см. раздел Отображение вкладки «Разработчик».
-
В диалоговом окне Импорт XML найдите и выберите файл данных XML (XML-файл), который вы хотите импортировать, и нажмите кнопку Импорт.
-
Импорт файла данных XML в качестве XML-таблицы
-
Импорт нескольких файлов данных XML
-
Импорт нескольких файлов данных XML в качестве внешних данных
-
Открытие файла данных XML для импорта данных
Дополнительные сведения о проблемах см. в разделе Типичные проблемы при импорте данных XML в конце этой статьи.
Импорт файла данных XML в качестве XML-таблицы
-
На вкладке Разработчик нажмите кнопку Импорт.
Если вкладка Разработчик не отображается, см. раздел Отображение вкладки «Разработчик».
-
В диалоговом окне Импорт XML найдите и выберите файл данных XML (XML-файл), который вы хотите импортировать, и нажмите кнопку Импорт.
Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.
-
В диалоговом окне Импорт данных выполните одно из следующих действий:
-
Выберите XML-таблицу на существующем компьютере, чтобы импортировать содержимое файла данных XML в XML-таблицу на вашем компьютере в указанной ячейке.
-
Чтобы импортировать содержимое файла в XML-таблицу на новом, начиная с ячейки A1, выберите XML-таблицу на новом. Карта файла данных XML отобразится в области задач Источник XML.
-
-
Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.
-
Чтобы контролировать поведение данных XML (например, привязку данных, форматирование и макет), нажмите кнопку Свойства ,чтобы отобразить диалоговое окно Свойства карты XML. Например, при импорте данных по умолчанию существующие данные в диапазоне будут перезаписаны, но это можно изменить.
Импорт нескольких файлов данных XML
-
Выберите сопоставленную ячейку, чтобы импортировать несколько XML-файлов в один набор сопоставленных ячеек.
Если вы хотите импортировать несколько XML-файлов в несколько наборов сопоставленных ячеек, щелкните любую несопоставленную ячейку листа.
-
На вкладке Разработчик нажмите кнопку Импорт.
Если вкладка Разработчик не отображается, см. раздел Отображение вкладки «Разработчик».
-
В диалоговом окне Импорт XML найдите и выберите файл данных XML (XML-файл), который вы хотите импортировать.
-
Если файлы являются смежными, нажмите клавишу SHIFT, а затем щелкните первый и последний файл в списке. Все данные из XML-файлов будут импортированы и добавлены в сопоставленные ячейки.
-
Если файлы не являются смежными, нажмите клавишу CTRL, а затем щелкните все файлы списка, которые вы хотите импортировать.
-
-
Нажмите кнопку Импорт.
Если вы выбрали несколько файлов, появится диалоговое окно Импорт <>.xml файл. Выберите карту XML, соответствующую импортируемому файлу данных XML.
Чтобы использовать одну карту для всех выделенных файлов, которые еще не были импортированы, установите флажок Использовать эту карту XML для всех выбранных файлов этой схемы.
Импорт нескольких файлов данных XML в качестве внешних данных
Если нужно импортировать несколько XML-файлов с одним пространством имен, но с разными схемами XML, вы можете воспользоваться командой Из импорта данных XML. Excel создаст уникальную карты XML для каждого импортируемого файла данных XML.
Примечание: При импорте нескольких XML-файлов, в которых не определено пространство имен, считается, что они используют одно пространство имен.
-
Если вы используете Excel с подпиской наMicrosoft 365, щелкните Данные > Получить данные > из файла > из XML.
Если вы используете Excel 2016 или более раннюю версию, на вкладке Данные нажмите кнопку Из других источников, а затем щелкните Из импорта данных XML.
-
Выберите диск, папку или расположение в Интернете, где находится файл данных XML (XML-файл), который вы хотите импортировать.
-
Выберите файл и нажмите кнопку Открыть.
-
В диалоговом окне Импорт данных выберите один из следующих параметров:
-
В XML-таблицу в существующей книге. Содержимое файла импортируется в новую таблицу XML на новом листе. Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.
-
Существующий таблица Данные XML импортируется в двумерную таблицу со строками и столбцами, где теги XML показаны как заголовки столбцов, а данные — в строках под заголовками столбцов. Первый элемент (корневой узел) используется как заголовок и отображается в указанном расположении ячейки. Остальные теги отсортировали по алфавиту во второй строке. В этом случае схема не создается и вы не можете использовать карту XML.
-
На новый лист. Excel добавляет в книгу новый лист и автоматически помещает данные XML в его левый верхний угол. Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.
-
-
Чтобы контролировать поведение данных XML, таких как привязка, форматирование и макет, нажмите кнопку Свойства ,чтобы отобразить диалоговое окно Свойства карты XML. Например, при импорте данных по умолчанию существующие данные в соеченом диапазоне перезаписываются, но это можно изменить.
Открытие файла данных XML для импорта данных
-
Выберите команду Файл > Открыть.
Если вы используете Excel 2007, нажмите Microsoft Office кнопку >открыть.
-
В диалоговом окне Открытие файла выберите диск, папку или веб-адрес, где расположен нужный файл.
-
Выберите файл и нажмите кнопку Открыть.
-
Если появится диалоговое окно Импорт XML, открытый файл ссылается на одну или несколько таблиц стилей XSLT, поэтому можно щелкнуть один из следующих параметров:
-
Открытие файла без применения таблицы стилей Данные XML импортируется в двумерную таблицу со строками и столбцами, где теги XML показаны как заголовки столбцов, а данные — в строках под заголовками столбцов. Первый элемент (корневой узел) используется как заголовок и отображается в указанном расположении ячейки. Остальные теги отсортировали по алфавиту во второй строке. В этом случае схема не создается и вы не можете использовать карту XML.
-
Открыть файл, применив следующую таблицу стилей (выберите одну). Выберите таблицу стилей, которую вы хотите применить, и нажмите кнопку ОК. Данные XML будут отформатированы в соответствии с выбранным листом стилей.
Примечание: Данные XML будут открыты в Excel в режиме «только для чтения», что позволяет предотвратить случайное сохранение первоначального исходного файла в формате книги Excel с поддержкой макросов (XLSM). В этом случае схема не создается и вы не можете использовать карту XML.
-
-
Если появится диалоговое окно Открыть XML, в XML-файле не будет ссылок на таблицу стилей XSLT. Чтобы открыть файл, выберите один из следующих параметров:
-
Щелкните XML-таблица для создания XML-таблицы в новой книге.
Содержимое файла импортируется в XML-таблицу. Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.
-
Выберите в качестве книги, которая будет работать только для чтения.
Данные XML импортируется в двумерную таблицу со строками и столбцами, где теги XML показаны как заголовки столбцов, а данные — в строках под заголовками столбцов. Первый элемент (корневой узел) используется как заголовок и отображается в указанном расположении ячейки. Остальные теги отсортировали по алфавиту во второй строке. В этом случае схема не создается и вы не можете использовать карту XML.
Данные XML будут открыты в Excel в режиме «только для чтения», что позволяет предотвратить случайное сохранение первоначального исходного файла в формате книги Excel с поддержкой макросов (XLSM). В этом случае схема не создается и вы не можете использовать карту XML.
-
Щелкните Использовать область задач XML-источника.
Карта файла данных XML отобразится в области задач Источник XML. Для сопоставления элементов схемы с листом их можно перетащить на лист.
Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.
-
Распространенные проблемы при импорте данных XML
Excel отображает диалоговое окно Ошибка импорта XML, если не может проверить данные в соответствии с картой XML. Чтобы получить дополнительные сведения об ошибке, нажмите кнопку Сведения в этом диалоговом окне. В следующей ниже таблице описаны ошибки, которые часто возникают при импорте данных.
Ошибка |
Объяснение |
Ошибка при проверке схемы |
Когда вы выбрали в диалоговом окне Свойства карты XML параметр Проверять данные на соответствие схеме при импорте и экспорте, данные были импортированы, но не проверены на соответствие указанной карте XML. |
Некоторые данные были импортированы как текст |
Часть импортированных данных или все данные были преобразованы из объявленного типа в текст. Чтобы использовать эти данные в вычислениях, необходимо преобразовать их в числа или даты. Например, значение даты, преобразованное в текст, не будет работать должным образом в функции ГОД, пока вы не преобразуйте его в тип данных «Дата». Excel преобразует данные в текст в следующих случаях:
|
Ошибка разбора XML |
Средству синтаксического анализа XML не удается открыть указанный XML-файл. Убедитесь, что в XML-файле отсутствуют синтаксические ошибки и XML построен правильно. |
Не удается найти карту XML, соответствующую этим данным |
Эта проблема может возникнуть в том случае, если для импорта выбрано несколько файлов данных XML и Excel не удается найти соответствующую карту XML для одного из них. Импортируйте схему для файла, указанного в строке заголовка этого диалогового окна, сначала следует, а затем повторно выполните импорт файла. |
Не удается изменить размер XML-таблицы для включения данных |
Вы пытаетесь добавить строки путем импорта или добавления данных в XML-таблицу, однако таблицу невозможно расширить. XML-таблицу можно дополнять только снизу. Например, сразу под XML-таблицей может находиться объект, такой как рисунок или даже другая таблица, который не позволяет расширить ее. Кроме того, возможно, что при расширении XML-таблицы будет превышен установленный в Excel предел по количеству строк (1 048 576). Чтобы исправить эту проблему, измените расположение таблиц и объектов на листе, чтобы XML-таблица могла дополняться снизу. |
Указанный XML-файл не ссылается на схему
XML-файл, который вы пытаетесь открыть, не ссылается на схему XML. Для работы с данными XML, содержащимися в файле, Excel требуется схема, основанная на его содержимом. Если такая схема неверна или не отвечает вашим требованиям, удалите ее из книги. Затем создайте файл схемы XML и измените файл данных XML так, чтобы он ссылался на схему. Дополнительные сведения см. в статье Сопоставление XML-элементов с ячейками карты XML.
Примечание: Схему, созданную Excel, невозможно экспортировать в качестве отдельного файла данных схемы XML (XSD-файла). Хотя существуют редакторы схем XML и другие способы создания файлов схемы XML, возможно, вы не имеете к ним доступа или не знаете, как ими пользоваться.
Выполните следующие действия, чтобы удалить из книги схему, созданную Excel:
-
На вкладке Разработчик выберите команду Источник.
Если вкладка Разработчик не отображается, см. раздел Отображение вкладки «Разработчик».
-
В области задач Источник XML выберите пункт Карты XML.
-
В диалоговом окне Карты XML щелкните карту XML, созданную Excel ,и нажмите кнопку Удалить.
Возникают проблемы при импорте нескольких XML-файлов, которые используют одно пространство имен, но разные схемы
При работе с несколькими файлами данных XML и несколькими схемами XML стандартным подходом является создание карты XML для каждой схемы, сопоставление нужных элементов, а затем импорт каждого из файлов данных XML в соответствующую карту XML. При использовании команды Импорт для открытия нескольких XML-файлов с одним пространством имен можно использовать только одну схему XML. Если эта команда используется для импорта нескольких XML-файлов, использующих одно пространство имен при разных схемах, можно получить непредсказуемые результаты. Например, это может привести к тому, что данные будут перезаписаны или файлы перестанут открываться.
Если нужно импортировать несколько XML-файлов с одним пространством имен, но с разными схемами XML, вы можете воспользоваться командой Из импорта данных XML (выберите Данные > Из других источников). Эта команда позволяет импортировать несколько XML-файлов с одним пространством имен и разными схемами XML. Excel создаст уникальную карты XML для каждого импортируемого файла данных XML.
Примечание: При импорте нескольких XML-файлов, в которых не определено пространство имен, считается, что они используют одно пространство имен.
Отображение вкладки «Разработчик»
Если вкладка Разработчик недоступна, выполните следующие действия, чтобы открыть ее.
-
В Excel 2013 и Excel 2010
-
Выберите Файл > Параметры.
-
Щелкните категорию Настроить ленту.
-
В разделе Основные вкладки установите флажок Разработчик и нажмите кнопку ОК.
-
-
В Excel 2007
-
Нажмите кнопку Microsoft Office кнопку >Excel параметры.
-
Выберите категорию Основные.
-
В разделе Основные параметры работы с Excel установите флажок Показывать вкладку «Разработчик» на ленте и нажмите кнопку ОК.
-
См. также
Просмотр XML в Excel
Сопоставление XML-элементов с ячейками карты XML
Экспорт данных XML
Здравствуйте. Имеется доменная сеть организации, компьютеры с ОС MS Windows 10 1903. Установлен MS Office 2016 и MS Office 2019 Standard. Имеется постоянная необходимость пересылать выгруженные из стороннего ПО по электронной
почте .xml файлы. Почтовый клиент у всех по умолчанию — Outlook. Почтовый сервер — службы gmail.
Ситуация следующая: Пользователь получает файл .xml вложением в почтовый клиент. MS Office 2016. Открывает его из клиента, или сохраняет себе на компьютер, с последующей попыткой открыть в Excel, получает
сообщение вида: «Файл поврежден, поэтому его нельзя открыть»
По рекомендациям из Сети, отключаю в панели безопасности Excel параметры:
— Включить защищенный просмотр для файлов из Интернета,
— Включить защищенный просмотр для файлов в потенциально небезопасных расположениях
— Включить защищенный просмотр для вложений Outlook.
Ошибка меняется на следующую: При загрузке были обнаружены ошибки в следующих областях: Таблица. Этот файл нельзя открыть из-за наличия ошибок. Ошибки перечислены в файле: ХХХХ.log
В логе следующее:
ОШИБКА РАЗБОРА XML: Отсутствует завершающий тег Ошибка на уровне этого стека элементов или ниже: <ss:Workbook> <ss:Worksheet> <ss:Table> <ss:Row> <ss:Cell> <ss:Data> <ss:P5P>
А теперь самое интересное. Если файл скачать через web-интерфейс почты Google — он открывается корректно и без ошибок. Если файл приходит пользователю в .zip/.rar архиве, открывается из Outlook — корректно и без ошибок.
Я проводил сравнение параметров и содержимого файлов (через текстовый редактор) — они полностью совпадают. Атрибуты, безопасность, размер. Однако один файл, сохраненный через Outlook — не открывается, а скачанный через браузер — корректно
работает. Файлы идентичные. Из одних и тех же писем.
В MS Office 2019 — все открывается корректно, как через Outlook, так и при сохранении через браузер.
Пользователи — имеют права локальных администраторов.
Что делает с .xml файлом Outlook, что приводит к невозможности его открыть и как исправить эту проблему?
Все документы XML зависят от определения того, какие поля разрешены для существования и какие значения разрешены для существования в каждом из этих полей. Они определены в каждом XML файле путем ссылки на определение типа документа ( «DTD» ) или файл XML-схемы.
Я понимаю, что Excel 2007 и более поздние версии не поддерживают DTD. Вместо этого они ожидают, что ваш XML файл будет ссылаться на XML-схему.
Итак, ваша основная проблема заключается в том, что ваш XML файл ссылается на DTD файл, и вам нужно преобразовать ваш DTD файл в файл XML-схемы (вы можете проверить это, открыв документ с помощью программы, например Notepad ++, и посмотрите на необработанную текст.)
Есть много инструментов, которые помогут вам сделать это, но, честно говоря, я пытался заставить их всех работать в течение нескольких часов и до сих пор не имеет Excel, открывающего мой XML (пробежал этот пост googling тот же код ошибки.)
Если вы просто пытаетесь открыть XML файл в одно мгновение, вы, вероятно, не захотите вложить в него столько усилий, но если я выясню быстрое и простое решение, я приду обновление.
Если вам просто нужно открыть его, вы можете скачать бесплатную программу, которая преобразует XML в CSV:
http://xmltocsv.codeplex.com/
Я попробовал, и он отлично поработал — я сразу же открыла свой файл в Excel 2013. Проблема решена на данный момент.
Конечно, точка XML заключается в том, что данные могут относиться к другим данным с контекстом, и они теряются без надлежащей схемы или файла DTD. Но если вы просто хотите, чтобы файл был открыт, это должно работать на данный момент (для тех, у кого еще нет Excel 2003, хотя я думаю, что это так же легко для вас.)
Содержание:
1. XML – расширяемый язык разметки
2. Устранение Ошибки разбора XML в 1С
3. «Обход» Ошибки разбора XML в 1С
1. XML – расширяемый язык разметки
В данной статье речь пойдёт о причинах возникновения фатальной ошибки «Ошибка разбора XML» и способах устранения данной неполадки. Также будет дана инструкция не по устранению, но «обходу» ошибки, то есть действиям на опережение.
XML (с английского – extensible markup language – расширяемый язык разметки) – это язык разметки, который рекомендует Консорциум Всемирной паутины. Обычно язык разметки XML служит для описания документации, соответствующего типа, а также описывает действия соответствующих процессоров. Расширяемый язык разметки имеет довольно простой синтаксис, поэтому используется по всему миру, чтобы создавать и обрабатывать документацию программным способом. Он создавался именно для использования в Интернете. XML назвали именно расширяемым языком разметки, так как в нём нет фиксации разметки, которая содержится внутри документа, а именно: программист может создавать любую разметку, а ограничения будут встречаться лишь в синтаксисе.
2. Устранение Ошибки разбора XML в 1С
«Ошибка разбора XML» возникает исключительно в тонком клиенте 1С. Также стоит отметить, что «Ошибка разбора XML» также довольна схожа с ошибкой по формату потока, которая возникает в толстом клиенте. Обычно в 1С «Ошибка разбора XML» возникает по причине наличия кэша метаданных. И если очистить кэш, то ошибка будет устранена. Выглядит окно с ошибкой, а также окно с комментариями от технической поддержки следующим образом:
Рис. 1 Окно Ошибки разбора XML в 1С
XML данные читаются по потокам, так что в каждый из моментов времени объект «сосредоточен» в некотором узле XML. Из-за этого также может возникать фатальная ошибка «Ошибка разбора XML». Для того чтобы её устранить, можно вызвать функцию «ИсключениеЧтенияXml», как показано на скриншоте примера ниже:
Рис. 2 Вызов функции ИсключениеЧтенияXML для устранения Ошибки разбора XML в 1С
3. «Обход» Ошибки разбора XML в 1С
Данные два способа (очистка кэша метаданных и функция «ИсключениеЧтенияXml») – не все возможные варианты устранения ошибки разбора XML. Далее рассмотрим нестандартный подход, который позволит избежать ошибки еще до её возникновения.
Для наглядности будем работать в конфигурации 1С:Бухгалтерия предприятия, одной из наиболее распространенных программ фирмы 1С. У многих людей, которые пользуются программой 1С:Отчётность появляются неполадки при попытках открыть данные/файлы от налоговой. Чтобы открыть такой файл повторяем следующие действия:
· Переходим по пути: «Настройки 1С:Отчётности → Журнал обмена с контролирующими органами», как показано на скриншоте ниже:
Рис. 3 Настройка 1С Отчетности
· Далее кликаем на «Запросы» и выделяем ту выписку, которую не было возможности открыть из-за ошибки, как продемонстрировано на скриншоте ниже:
Рис. 4 Выбор выписки с Ошибкой разбора XML в 1С
· Обращаем внимание на стадию отправки, которая располагается внизу этого сообщения, и кликаем два раза на зелёный круг:
Рис. 5 Стадия отправки документа с Ошибкой разбора XML в 1С
· Появляется транспортное сообщение, в нём кликаем на «Выгрузить» и выбираем папку, куда необходимо провести выгрузку, после чего сохраняем данный файл. Пробуем открыть его, при помощи любого из графических редакторов, который может поддерживать формат PDF, как показано на скриншоте ниже:
Рис. 6 Результат обхода Ошибки разбора XML в 1С
· Всё успешно открылось, а ошибка даже не успела возникнуть.
Специалист компании «Кодерлайн»
Айдар Фархутдинов
10 Years Ago
XML,Excel Macros
Hi I am working on some stuff where i need to Import the data present in XML file to excel sheet.
i wrote below code for it
Sub ImportXMLtoList()
Dim strTargetFile As String
Application.DisplayAlerts = False
strTargetFile = "C:BookData.xml"
Workbooks.OpenXML Filename:=strTargetFile, LoadOption:=xlXmlLoadImportToList
Application.DisplayAlerts = True
End Sub
But when i run above code i am getting error something related to «Schema»
Looking for help guys.
Thanks in Advance
Recommended Answers
Can you elaborate more on the something like part error of schema. With a full on error I’m sure we can help. It seems that the xml schema loaded incorrectly…
Jump to Post
All 3 Replies
10 Years Ago
Can you elaborate more on the something like part error of schema. With a full on error I’m sure we can help. It seems that the xml schema loaded incorrectly…
10 Years Ago
Hi AndreRet Thanks for your reply.
I want to do it in Excel 2003 using Macros. When i run the same above code in MS2007 it imports data succesfully,but it opens an new excel file and paste the data in Row order.
But when i run the same code in MS2003 a pop saying «The specified XML Source Doesnt refer to a schema.Excel will create schema based on the XML source data» is displayed, when i click ok button then Nothing is pasted in Excel.
I can say XML contains Repeating and Non-Repeating Elements.Is there any way to import the required elements data instead of all data present in XMl.
Thanks in advance
10 Years Ago
It seems the code for excel 2003 is different than that for 2007 —
This from Microsoft…
expression.Import(Url, Overwrite)
expression Required. An expression that returns one of the objects in the Applies To list.
Url Required String. The path to the XML data to import. The path can be specified in Universal Naming convention (UNC) or Uniform Resource Locator (URL) format. The file can be an XML data file or a valid Office XML data Source Connection (.uxdc) file.
Overwrite Optional Variant. Set to True to overwrite existing data. Set to False to append to existing data. The default value is False.
Also, if the user has Excel Standard Edition 2003 because it does not include the XML import functionality — namely the Workbook.XmlImport function.
Try the following code for 2003…
Sub ImportXMLData()
Dim xlImportResult As XlXmlImportResult
xlImportResult = ThisWorkbook.XmlMaps("Invoice_Map").Import("C:invoice.xml", True)
Select Case xlImportResult
Case xlXmlImportElementsTruncated
Debug.Print "XML data items imported with truncation."
Case xlXmlImportSuccess
Debug.Print "XML data items imported successfully."
Case xlXmlImportValidationFailed
Debug.Print "XML data items not imported. Validation failed."
Case Else
Debug.Print "Data import process reported an unknown result code."
End Select
Set xlImportResult = Nothing
End Sub
Reply to this topic
Be a part of the DaniWeb community
We’re a friendly, industry-focused community of developers, IT pros, digital marketers,
and technology enthusiasts meeting, networking, learning, and sharing knowledge.