Excel невозможно сохранить xml данные так как книга не содержит сопоставлений xml

Обновлено: 06.07.2024

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

В справке рассмотрены примеры таких ошибок, но вариантов решений немного. Мне не стало понятно, как избавится от ошибок, не меняя схему.

А может кто-то уже разбирался с этим приказом и на самом деле нужно делать все как-то совсем по другому?

Результат должен быть примерно таким:

Спасибо за оперативный и подробный ответ!

Попробовала Ваш 1ый совет, действительно удобно и теперь процесс ручного заполнения кажется не таким устрашающим:)

Спасибо за идею с классами! пока удалось сгенерить java класс с помощью jaxb:) осталось разобраться как наполнить его данными и сериализовать затем в xml.

_Vasilisk_
Может быть Вам легче будет экспортировать данные в любую XML структуру, а потом применить XSL преобразование?

Спасибо за идею! Почитала про XSL преобразование, но пока не поняла как можно на выходе с помощью него получить нужную xml в соответствии с заявленной xsd.

Вот об этом я и прочитала, я подумала вы поняли мою ситуацию. А данные да, еще только предстоит засунуть в xml :)

Antonariy
Если эти данные существуют в электронном виде (в бд или еще каком), то создание программы имеет смысл, но если их все равно нужно вбивать руками, то через программу это будет почти наверняка медленнее, чем прямо в xml.

У меня есть просто отчет, обычная таблица в екселе. я попробовала сохранить этот Exel документ как xml, выдало ошибку "Невозможно сохранить xml данные, так как книга не содержит сопоставлений XML." До этого пробовала с помощью конвертера сделать xml, xml получилась, но там был какой-то ужас :) преобразовать тот ужас с помощью xls пока кажется невыполнимым.

Конвертация из Microsoft Excel в XML

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

Процедура конвертации

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

Способ 1: простое сохранение

В Excel можно сохранить данные в формате XML, просто воспользовавшись меню «Сохранить как…». Правда, нет гарантии, что потом все программы будут корректно работать с файлом, который был создан таким способом. Да и не во всех случаях этот способ работает.

  1. Запускаем программу Excel. Для того, чтобы открыть элемент, подлежащий конвертации переходим во вкладку «Файл». Далее жмем по пункту «Открыть».

Переход к открытию файла в Microsoft Excel

Открытие файла в Microsoft Excel

Переход во вкладку Файл в Microsoft Excel

Переход к сохранению файла в Microsoft Excel

Переход к выбору типа файла в Microsoft Excel

Сохранение в формате XML в Microsoft Excel

Сохранение документа в Microsoft Excel

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

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

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

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

Переход в параметры в Microsoft Excel

Включение режима разработчика в Microsoft Excel

Таблица в Microsoft Excel

Схема в Notepad++

Переход к выбору источника в Microsoft Excel

Переход к добавлению схемы в Microsoft Excel

Выбор схемы в Microsoft Excel

Измененные наименования столбцов в Microsoft Excel

Переход в экспорт в Microsoft Excel

Как видим, существуют два основных способа конвертации файлов XLS и XLSX в формат XML программой Microsoft Excel. Первый из них предельно простой и заключается в элементарной процедуре сохранения с заданным расширением через функцию «Сохранить как…». Простота и понятность данного варианта, несомненно, являются преимуществами. Но у него есть один очень серьезный недостаток. Преобразование выполняется без учета определенных стандартов, и поэтому файл, конвертируемый таким способом, сторонними приложениями может просто не распознаваться. Второй вариант предполагает составление карты XML. В отличие от первого способа, таблица, преобразованная по данной схеме, будет соответствовать всем стандартам качества XML. Но, к сожалению, не каждый пользователь сможет быстро разобраться с нюансами этой процедуры.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Я столкнулся с проблемой экспорта в XML Excel. Чтобы упростить вопрос, я делаю следующие шаги:

1.Данные >> из импорта данных XML.

На самом деле, я хочу снова экспортировать его в XML-файл после некоторой модификации данных (эти переменные первой строки никогда не меняются)

2. Затем нажмите "Разработать" >> "Экспорт". Он показывает "невозможно сохранить или экспортировать данные XML. Карты XML в этой книге не экспортируются". (даже я ничего не делаю модификации по данным). Я уже смотрю несколько видеороликов по экспорту на YouTube, но, похоже, не решаю проблему. Я еще не нашел проблему.

4 ответа

Обычная причина в том, что Excel не понимает очень сложный XML.

XML-сопоставление не может быть экспортировано, если связь сопоставленного элемента с другими элементами не может быть сохранена. Эта связь не может быть сохранена по следующим причинам:

Определение схемы сопоставленного элемента содержится в последовательности со следующими атрибутами:

  • Атрибут maxoccurs не равен 1.
  • В последовательности определено более одного прямого дочернего элемента или другой композитор является прямым дочерним элементом.
  • Неповторяющиеся элементы с одним и тем же повторяющимся родительским элементом отображаются в разные таблицы XML.
  • Несколько повторяющихся элементов отображаются в одну и ту же таблицу XML, и повторение не определяется элементом-предком.
  • Дочерние элементы от разных родителей отображаются в одну и ту же таблицу XML.
  • Один список предметов содержит второй список предметов.
  • Таблица XML содержит элемент, который был определен в схеме для однократного выполнения (атрибут maxoccurs установлен в 1). Когда вы добавляете такой элемент в таблицу XML, Excel заполняет столбец таблицы несколькими экземплярами элемента.
  • Сопоставленный элемент является частью конструкции схемы.

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

  1. забыл иметь один внешний тег оболочки для строк (основная причина ошибки, которая привела меня на эту страницу)
  2. не правильно понимал типы данных (то, что выглядело как числовое, на самом деле было текстом - я думаю, больше неудобно, но сначала я исправил это).

Ваш XML, который преобразуется в схему, должен выглядеть следующим образом (я не знаю, нужны ли ему две «примерные строки», но это помогает запомнить внешний тег):

Так что я внесу здесь свое решение. Конечно, это может быть не ваше, но тем не менее это полезная информация, и я уверен, что она кому-то поможет.

Я обнаружил, что в ситуациях, когда я импортировал экземпляр XML вместо схемы, Excel неправильно (а не то, что я намеревался) выводит схему из этого экземпляра. Это произошло потому, что запись, которую я хотел воспроизводить, имела только один экземпляр в XML, который я использовал для создания карты. (Я создаю здесь шаблон для будущего импорта, пока не пытаюсь импортировать существующие данные, поэтому у меня была только одна запись с некоторыми фиктивными данными в ней.) Я просто скопировал запись с фиктивными данными под ее первым экземпляром, чтобы там было две записи . и все было золотым. Импорт и экспорт неожиданно заработали.



В Microsoft Excel можно легко импортировать данные XML, созданные в других базах данных и приложениях, сопоставить XML-элементы из схемы XML с ячейками листа и экспортировать обработанные данные XML для взаимодействия с другими базами данных и приложениями. Эти функциональные возможности позволяют использовать Office Excel как генератор файлов данных XML со знакомым пользовательским интерфейсом.

В этой статье

Причины использования XML в Excel
Данные XML и файлы схемы
Ключевые сценарии XML и Excel
Основной процесс использования данных XML в Excel
Работа с картами XML
Использование области задач источника XML
Типы элементов и их значки
Работа с ячейками с точечным сопоставлением
Работа с повторяющимися ячейками в XML-таблицах
Обеспечение безопасности карт XML
Импорт данных XML
Работа с полученной схемой
Экспорт данных XML
Использование файла Excel формата Office Open XML с поддержкой макросов

Причины использования XML в Excel

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

Данные XML и файлы схемы

Excel работает преимущественно с двумя типами XML-файлов:
файлами данных XML (XML), которые содержат настраиваемые теги и структурированные данные;
Файлы схемы (XSD), которые содержат теги схемы, обеспечивающие правила, такие как тип данных и проверка.
В стандарте XML также определяются файлы преобразования XSLT, которые используются для применения стилей и преобразования данных XML в другие форматы. Вы можете использовать эти преобразования перед импортом XML-файлов в Excel и после экспорта XML-файлов из Excel. Если XSLT-файлы связаны с XML-файлами данных, импортированными в Excel, вы можете применить форматирование перед добавлением данных на лист, только открыв XML-файл в Excel с помощью команды Открыть. Прежде чем нажать кнопку Открыть, выберите тип файлов XML (*.XML), чтобы просмотреть XML-файлы в папке.

Ключевые сценарии XML и Excel

С помощью XML и Excel вы можете управлять книгами и данными такими способами, которые ранее были невозможны или представляли трудности. Используя карты XML, вы можете легко добавлять, идентифицировать и извлекать определенные фрагменты бизнес-данных из документов Excel. Например, счет-фактура, содержащий имя и адрес покупателя, или отчет с финансовыми показателями за предыдущий квартал больше не будут статичными отчетами. Эти сведения можно с легкостью импортировать из баз данных и приложений, изменять, а также экспортировать в те или иные базы данных и приложения.
Вот ключевые сценарии, для работы с которыми предназначены возможности XML:
расширение функциональных возможностей существующих шаблонов Excel путем сопоставления XML-элементов с существующими ячейками. Это облегчает удаление и добавление данных XML в шаблонах, не изменяя сами шаблоны;
использование данных XML в качестве входных данных для существующих моделей вычислений путем сопоставления XML-элементов с существующими листами;
импорт файлов данных XML в новую книгу;
импорт данных XML из веб-службы на лист Excel;
экспорт данных в сопоставленных ячейках в файлы данных XML независимо от других данных в книге.
К началу страницы

Основной процесс использования данных XML в Excel

На следующей схеме показано, как взаимодействуют различные файлы и операции при использовании XML в Excel. Фактически этот процесс состоит из пяти этапов.


Добавление файла схемы XML (XSD) в книгу

сопоставление элементов схемы XML с отдельными ячейками или XML-таблицами

импорте файла данных XML (XML) и привязки XML-элементов к сопоставленным ячейкам

ввод данных, перемещение сопоставленных ячеек и использование функциональных возможностей Excel при сохранении структуры и определений XML.

экспорт измененных данных из сопоставленных ячеек в файл данных XML

Работа с картами XML

Вы можете создать или открыть книгу в Excel, прикрепить к книге файл схемы XML (XSD), а затем использовать область задач Источник XML для сопоставления XML-элементов схемы с отдельными ячейками или таблицами. Выполнив такое сопоставление, вы можете импортировать и экспортировать данные XML в ячейки таблицы и из них соответственно.
При добавлении файла схемы XML (XSD) в книгу создается карта XML. Как правило, карты XML используются для создания сопоставленных ячеек и управления взаимосвязью между такими ячейками и отдельными элементами схемы XML. Кроме того, эти карты используются для привязки содержимого сопоставленных ячеек к элементам схемы при импорте или экспорте файлов данных XML (XML).
Вы можете создавать сопоставленные ячейки двух видов: ячейки с точечным сопоставлением и повторяющиеся ячейки (отображаемые в виде XML-таблиц). Для более гибкой разработки книги вы можете перемещать сопоставленные ячейки в любое место на листе и в любой последовательности, даже отличающейся от последовательности, заданной в схеме XML. Вы также можете выбрать, какие элементы следует сопоставлять.
Важно знать такие правила использования карт XML:
книга может содержать одну или несколько карт XML;
одновременно можно сопоставить только один элемент с одним расположением в книге;
каждая карта XML независима от других, даже если несколько карт XML в одной книге относятся к одной и той же схеме;
карта XML может содержать только один корневой элемент. При добавлении схемы, определяющей более одного корневого элемента, появится запрос на выбор корневого элемента, который будет использоваться в новой карте XML.

Использование области задач источника XML

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

1. Отображение карт XML, добавленных в книгу.
2. Отображение иерархического списка XML-элементов в текущей карте XML.
3. Установка параметров при работе с областью задач Источник XML и данными XML (например, параметров, отвечающих за предварительный просмотр данных и управление заголовками).
4. Открытие диалогового окна Карты XML, которое служит для добавления, удаления или переименования карт XML.
5. Проверка возможности экспорта данных XML через текущую карту XML.
К началу страницы

Типы элементов и их значки

В следующей таблице приведены все типы XML-элементов, с которыми может работать Excel, и значки, используемые для представления каждого типа элементов.
Тип элемента
Значок
Родительский элемент

Обязательный родительский элемент

Повторяющийся родительский элемент

Обязательный повторяющийся родительский элемент

Обязательный дочерний элемент

Повторяющийся дочерний элемент

Обязательный повторяющийся дочерний элемент

Простое содержимое в сложной структуре

Обязательное простое содержимое в сложной структуре

К началу страницы

Работа с ячейками с точечным сопоставлением

Ячейка с точечным сопоставлением — это ячейка, сопоставленная с неповторяющимся XML-элементом. Такую ячейку вы можете создать, переместив неповторяющийся XML-элемент из области задач Источник XML в отдельную ячейку листа.
Название перемещаемого на лист неповторяющегося XML-элемента вы можете назначить заголовком сверху или слева от ячейки с точечным сопоставлением при помощи смарт-тега. В качестве заголовка также можно использовать текущее значение ячейки.
Кроме того, в ячейке с точечным сопоставлением вы можете использовать формулу, если ячейка сопоставлена с XML-элементом, который имеет тип данных определения схемы XML (XSD), интерпретируемый Excel как число, дата или время.
К началу страницы

Работа с повторяющимися ячейками в XML-таблицах

По внешнему виду и функциональным возможностям XML-таблицы подобны таблицам Excel. XML-таблицы являются таблицами Excel, сопоставленными с одним или несколькими повторяющимися XML-элементами. Каждый столбец XML-таблицы соответствует XML-элементу.
XML-таблица создается в следующих случаях:
при использовании команды Импорт (в группе XML на вкладке Разработчик) для импорта файла данных XML;
Откройте файл данных XML с помощью команды Открыть в Excel, а затем выберите в качестве XML-таблицы в диалоговом окне Открытие XML .
при использовании команды Из импорта данных XML (кнопка команды Из других источников в группе Внешние данные на вкладке Данные) для импорта файла данных XML и дальнейшего выбора параметров XML-таблица на существующем листе или Новый лист в диалоговом окне Импорт данных;
при перетаскивании на лист одного или нескольких повторяющихся элементов из области задач Источник XML.
При создании XML-таблицы названия XML-элементов автоматически используются в качестве названий столбцов. Вы можете изменить эти названия. Но при экспорте данных из сопоставленных ячеек автоматически будут использоваться исходные названия XML-элементов.
При работе с XML-таблицами полезны два параметра, доступные с помощью кнопки Параметры в области задач Источник XML.

Автоматически объединять элементы при сопоставлении.
Если установлен соответствующий флажок, в Excel создается одна XML-таблица из нескольких полей, перенесенных на лист. Этот параметр работает, пока поля перемещаются в одну строку в виде последовательного ряда. Если флажок снят, каждый элемент отображается в виде отдельной XML-таблицы.

Данные с заголовками.
Если установлен соответствующий флажок, существующие данные заголовков используются в качестве названий столбцов для повторяющихся элементов, сопоставляемых на листе. Если флажок снят, названия XML-элементов используются в качестве названий столбцов.
С помощью XML-таблиц вы можете импортировать, экспортировать, сортировать, фильтровать и печатать данные, основанные на источнике данных XML. Но существуют некоторые ограничения относительно расположение XML-таблиц на листе.
XML-таблицы основаны на строках, то есть они увеличиваются из строки заголовка вниз. Добавлять новые записи над существующими строками нельзя.
Невозможно транспонировать XML-таблицу так, чтобы новые записи добавлялись справа.
Вы можете использовать формулы в столбцах, сопоставленных с XML-элементами, которые имеют тип данных определения схемы XML (XSD), интерпретируемый Excel как число, дата или время. В XML-таблице, как и в таблице Excel, формулы копируются вниз по столбцу по мере добавления новых строк.

Обеспечение безопасности карт XML

Карта XML и содержащиеся в ней сведения об источнике данных сохраняются в книге Excel, а не на определенном листе. Злоумышленник может просмотреть эти данные карты с помощью макроса VBA (Microsoft Visual Basic для приложений). Более того, если книга сохранена в файле Excel формата Open XML с поддержкой макросов, данные карты можно просмотреть с помощью Блокнота или другого текстового редактора.
Если вы хотите по-прежнему использовать сведения о карте, но при этом скрыть конфиденциальные данные, вы можете удалить из книги определение источника данных схемы XML, не прекращая экспорт данных XML. Для этого снимите флажок Сохранять определение источника данных в книге в диалоговом окне Свойства карты XML, которое можно открыть, выбрав Свойства карты в группе XML на вкладке Разработчик.
Если удалить лист до удаления карты, сведения карты об источниках данных и, возможно, другие конфиденциальные сведения останутся в книге. При обновлении книги для удаления конфиденциальных сведений обязательно удалите карту XML до удаления листа, чтобы окончательно удалить данные карты из книги.
К началу страницы

Импорт данных XML

Распространенные проблемы при импорте данных XML

Указанный XML-файл не ссылается на схему

XML-файл, который вы пытаетесь открыть, не ссылается на схему XML. Для работы с данными XML, содержащимися в файле, Excel требуется схема, основанная на его содержимом. Если такая схема неверна или не отвечает вашим требованиям, удалите ее из книги. Затем создайте файл схемы XML и измените файл данных XML так, чтобы он ссылался на схему. Дополнительные сведения см. в статье Сопоставление XML-элементов с ячейками карты XML.

Читайте также: