Как использовать xsd схемы в excel

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

Совет: Дополнительные сведения об использовании XML в Excel см. в этом обзоре XML в Excel.

  • Поиск или создание файлов схемы XML и данных XML

  • Использование образцов файлов схемы XML и данных XML

  • Создание карты XML

  • Сопоставление XML-элементов

Поиск или создание файлов схемы XML и данных XML

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

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

Access

  1. Импортируйте текстовый файл, который требуется преобразовать, и свяжите его с новой таблицей.

    1. Выберите команду Файл > Открыть.

    2. В диалоговом окне Открытие найдите и откройте базу данных, в которой требуется создать новую таблицу.

    3. На вкладке Внешние данные выберите команду Текстовый файл и выполните инструкции для каждого шага, связав таблицу с нужным текстовым файлом.

      Access создает новую таблицу, имя которой отображается в области навигации.

  2. Экспортируйте данные из связанной таблицы в файл XML-данных и файл схемы XML.

    1. На вкладке Внешние данные выберите команду XML-файл (в группе Экспорт).

    2. В диалоговом окне Экспорт — XML-файл укажите имя и формат файла и нажмите кнопку ОК.

  3. Выйдите из Access.

Excel

  1. Создайте карту XML на основе файла схемы XML, экспортированного из Access.

    Если открывается диалоговое окно Несколько корней, выберите элемент dataroot, чтобы создать XML-таблицу.

  2. Создайте XML-таблицу, сопоставив элемент dataroot. Дополнительные сведения см. в разделе Сопоставление XML-элементов.

  3. Импортируйте XML-файл, экспортированный из Access.

Примечания: 

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

  • <любой>    Этот элемент позволяет вам включить в схему элементы, не объявленные в схеме.

  • <любое>    Этот элемент позволяет вам включить в схему атрибуты, не объявленные в схеме.

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

  • Абстрактные элементы.    Эти элементы объявляются в схеме, но никогда не используются как элементы. Абстрактные элементы зависят от других элементов, которыми они заменяются.

  • Группы подстановки.    Эти группы позволяют менять элемент везде, где встречается ссылка на него. Принадлежность элемента к группе подстановки другого элемента указывается с помощью атрибута <substitutionGroup>.

  • Смешанное содержимое.    Это содержимое объявляется при определении сложного типа с помощью параметра mixed=»true». Excel не поддерживает простое содержимое сложного типа, но поддерживает дочерние теги и атрибуты, определенные в этом сложном типе.

Использование образцов файлов схемы XML и данных XML

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

  1. Выделите текст примера файла, который требуется скопировать, и нажмите клавиши CTRL+C.

  2. Запустите Блокнот и нажмите клавиши CTRL+V, чтобы вставить текст примера.

  3. Нажмите клавиши CTRL+S, чтобы сохранить файл с именем и расширением, указанными для скопированного образца данных.

  4. Нажмите клавиши CTRL+N в приложении Блокнот и повторите шаги 1–3, чтобы создать файл для текста второго примера.

  5. Выйдите из Блокнота.

Образец данных XML (Расходы.xml)

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Root>
  <EmployeeInfo>
    <Name>Jane Winston</Name>
    <Date>2001-01-01</Date>
    <Code>0001</Code>
  </EmployeeInfo>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Airfare</Description>
    <Amount>500.34</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Hotel</Description>
    <Amount>200</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Taxi Fare</Description>
    <Amount>100.00</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Long Distance Phone Charges</Description>
    <Amount>57.89</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-01</Date>
    <Description>Food</Description>
    <Amount>82.19</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-02</Date>
    <Description>Food</Description>
    <Amount>17.89</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-02</Date>
    <Description>Personal Items</Description>
    <Amount>32.54</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-03</Date>
    <Description>Taxi Fare</Description>
    <Amount>75.00</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-03</Date>
    <Description>Food</Description>
    <Amount>36.45</Amount>
  </ExpenseItem>
  <ExpenseItem>
    <Date>2001-01-03</Date>
    <Description>New Suit</Description>
    <Amount>750.00</Amount>
  </ExpenseItem>
</Root>

Образец схемы XML (Расходы.xsd)

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="Root">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element minOccurs="0" maxOccurs="1" name="EmployeeInfo">
          <xsd:complexType>
            <xsd:all>
              <xsd:element minOccurs="0" maxOccurs="1" name="Name" />
              <xsd:element minOccurs="0" maxOccurs="1" name="Date" />
              <xsd:element minOccurs="0" maxOccurs="1" name="Code" />
            </xsd:all>
          </xsd:complexType>
        </xsd:element>
        <xsd:element minOccurs="0" maxOccurs="unbounded" name="ExpenseItem">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="Date" type="xsd:date"/>
              <xsd:element name="Description" type="xsd:string"/>
              <xsd:element name="Amount" type="xsd:decimal" />
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Создание карты XML

Чтобы создать карту XML, добавьте схему XML в книгу. Можно скопировать схему из файла схемы XML (XSD-файла) или позволить Excel попытаться построить такую схему на основе файла данных XML (XML-файла).

  1. На вкладке Разработчик выберите команду Источник.

    Команды XML на вкладке "Разработчик"

    Если вкладка Разработчик не отображается, см. раздел Отображение вкладки «Разработчик».

  2. В области задач Источник XML нажмите кнопку Карты XML, а затем нажмите кнопку Добавить.

  3. В списке Папка выберите диск, папку или веб-адрес, где расположен нужный файл.

  4. Щелкните файл, а затем нажмите кнопку Открыть.

    • Для файла схемы XML будет создана карта XML, основанная на данной схеме XML. Если откроется диалоговое окно Несколько корней, выберите один из корневых узлов, определенных в файле схемы XML.

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

  5. Нажмите кнопку ОК.

    Карта XML отображается в области задач Источник XML.

Сопоставление XML-элементов

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

  1. На вкладке Разработчик выберите команду Источник.

    Команды XML на вкладке "Разработчик"

    Если вкладка Разработчик не отображается, см. раздел Отображение вкладки «Разработчик».

  2. В области задач Источник XML выделите элементы, которые требуется сопоставить.

    Чтобы выделить несмежные элементы, щелкните один из них, а затем, удерживая нажатой клавишу CTRL, поочередно щелкните все нужные элементы.

  3. Чтобы сопоставить элементы, выполните указанные ниже действия.

    1. Щелкните выделенные элементы правой кнопкой мыши и выберите команду Сопоставить элемент.

    2. В диалоговом окне Сопоставление XML-элементов выберите ячейку и нажмите кнопку ОК.

      Совет: Вы также можете перетащить выделенные элементы в то место книги, где они должны отображаться.

      Каждый такой элемент будет выделен в области задач XML-источник полужирным шрифтом. Это означает, что данный элемент сопоставлен.

  4. Выберите, как должны обрабатываться подписи данных и заголовки столбцов.

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

      Данные уже содержат заголовок.    Выберите этот параметр, чтобы проигнорировать заголовок XML-элемента, так как данная ячейка уже имеет заголовок (слева от данных или над ними).

      Заголовок XML слева.    Выберите этот параметр, чтобы использовать заголовок XML-элемента в качестве подписи ячейки (слева от данных).

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

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

      В области задач XML-источник нажмите Параметры, чтобы уточнить поведение XML-таблицы.

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

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

      Примечания: 

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

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

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

        1. Добавьте карту XML в новую книгу с помощью XML- или XSD-файла, который использовался при создании исходной карты XML. Эти файлы следует хранить, если вы планируете добавлять карты XML в другие книги.

        2. Сопоставьте эти XML-элементы таблице, чтобы сделать ее XML-таблицей.

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

        С объединенной ячейкой можно сопоставлять отдельные, неповторяющиеся XML-элементы, но сопоставление с такими ячейками повторяющихся XML-элементов (или элементов, содержащих повторяющиеся элементы) не допускается. Объединение ячейки будет отменено, а элемент будет сопоставлен с ячейкой, в которой находится указатель.

Советы: 

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

  • Чтобы отменить сопоставление XML-элемента, щелкните правой кнопкой мыши его имя в области задач Источник XML и выберите команду Удалить элемент.

Отображение вкладки «Разработчик»

Если вкладка Разработчик недоступна, выполните следующие действия, чтобы открыть ее.

  • В Excel 2010 и более новых версиях:

    1. Выберите Файл > Параметры.

    2. Щелкните категорию Настроить ленту.

    3. В разделе Основные вкладки установите флажок Разработчик и нажмите кнопку ОК.

  • В Excel 2007

    1. Нажмите кнопку Microsoft Office кнопку Изображение кнопки Office>Excel параметры.

    2. Выберите категорию Основные.

    3. В разделе Основные параметры работы с Excel установите флажок Показывать вкладку «Разработчик» на ленте и нажмите кнопку ОК.

См. также

Удаление данных карты XML из книги

Переописывание данных XML

Обзор XML в Excel

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

Экспорт данных XML

XML (Extensible Markup Language, Расширяемый язык разметки) — это универсальный язык, который позволяет вам создавать документы, данные которых сохраняются независимо от формата таким образом, что вы можете использовать эти данные в других программах. XML полностью поддерживается такими программами пакета Microsoft Office, как Word, Excel и Access. Для того чтобы работать со знакомым вам интерфейсом Office и создавать и сохранять документы в формате XML, не нужно обладать какими-либо знаниями XML.

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

Чтобы добавить схему:

Нажмите вкладку Разработчик.

Нажмите кнопку Источник.

На панели задач Источник XML нажмите кнопку Карты XML.

Нажмите кнопку Добавить.

Найдите и выберите файл схемы XML, которую вы хотите добавить, а затем нажмите Открыть.

При необходимости нажмите ОК. чтобы создать схему на основе источника данных XML.

Чтобы удалить или переименовать схему XML, выберите схему, а затем нажмите Удалить или Переименовать.

Нажмите ОК.

По завершении нажмите кнопку Закрыть на панели задач.

Чтобы изменить свойства карты XML-данных:

Откройте рабочий лист, в котором вы хотите сопоставить ячейкам карту XML.

Нажмите вкладку Разработчик.

Нажмите кнопку Источник

Нажмите кнопку Свойства карты

Если хотите, измените имя карты XML

Отметьте или снимите отметки со следующих окон:

Проверять данные на соответствие схеме при импорте и экспорте:

Сохранять определение источника данных в книге;

Подстраивать ширину столбца:

Сохранять фильтр столбца;

Сохранить форматы чисел.

Выберите желаемые параметры обновления или импорта данных.

Нажмите ОК.

Использование XML-данных в Excel — это стандартный процесс, который можно разбить на следующие этапы: (1) добавление файла XML-схемы (с расширением. xsd) в рабочую книгу), (2) сопоставление элементов XML-схемы с отдельными ячейками, (3) импорт файла с XML-данными (с расширением. xml), (4) ввод данных и (5) экспорт просмотренных данных из сопоставленных ячеек в файл данных XML. Используйте область задач Источник XML, чтобы создавать карты XML и управлять ими. В области задач отображается иерархический список элементов XML в текущей карте XML, которые вы используете для сопоставления с ячейками рабочего листа. После того, как вы создадите карту данных XML, вы сможете импортировать данные XML, чтобы вставить в рабочий лист сведения из источника данных.

Чтобы создать карту данных XML:

Откройте рабочий лист, в котором вы хотите сопоставить данные XML

Нажмите вкладку Разработчик,

Нажмите кнопку Источник.

Нажмите стрелку списка Карты XML в этой книге, а затем выберите схему XML, которую вы хотите использовать.

Перетащите какие-либо элементы с области задач Источник XML в соответствующие ячейки рабочего листа.

Нажмите кнопку Параметры заголовка и выберите желаемый параметр.

По окончании нажмите кнопку Закрыть в области задач.

Чтобы импортировать данные XML

Откройте рабочий лист, в который вы хотите импортировать данные XML

Нажмите вкладку Разработчик

Нажмите кнопку Импорт.

Нажмите стрелку списка Тип файлов, а затем выберите Файлы XML

Найдите и выберите файл с данными XML, который вы хотите импортировать.

Нажмите Открыть.

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

Чтобы экспортировать XML-данные:

Откройте рабочий лист с данными XML.

Нажмите вкладку Разработчик

Нажмите кнопку Экспорт.

При необходимости щелкните карту XML. которую вы хотите использовать, а затем нажмите ОК

Выберите папку, в которую вы хотите экспортировать XML-данные.

Нажмите Экспорт

Чтобы сохранить XML-данные:

Откройте рабочий лист с XML-данными.

Вызовите меню Office и выберите Сохранить как, а затем выберите Другие форматы.

Нажмите стрелку списка Тип файла и выберите XML-данные или Таблица XML 23.

Выберите папку, в которой вы хотите сохранить XML-данные.

Введите имя для XML-документа.

Нажмите Сохранить.

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

ВАЖНО

При сохранении файла в формате XML-данных текущий рабочий лист становится XML-данными. Чтобы работать с исходным рабочим листом — необходимо будет заново его открыть.


Newer news items:

Older news items:


This answer is equally for you as well as @Alex, @Michael and @forty-two. I am illustrating it using Excel 2010, so if you’re on another version, I’ll leave it up to you to make the necessary adjustments.

First thing, make sure the developer tab shows (Click the File tab, Options).

Excel 2010 options for Developer tab

You now have to create an XML source from your XSD: click the Developer tab; in the XML group, toggle Source button to show the Xml Source task pane; then click the XML Maps button.

Excel showing key UI elements for creating an XML map

Click Add button at the prompt; point to the XSD file; then click OK to go back to the main screen.

Excel showing XSD loaded in an XML map

Then you can drag and drop your shipOrder to a cell in a worksheet, to anchor the generated mapped table.

Excel showing mapped XSD

Next, you may use Import to get your XML data into the spreadsheet, and Export to get it out. There are a couple of additional things to pay attention to; read this article on Microsoft’s site; pay particular attention to the issues with exporting XML data (error XML maps in my workbook are not exportable). This is because of the 1 to many cardinality between shiporder and item. You can try to handle it using mapped ranges — I’ll leave this all up to you. The best would be for you to read the online help for the XML developer section…

У меня есть файл XSD, и мне нужно преобразовать его в файл MS Excel.
XSD находится ниже.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="shiporder">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="orderperson" type="xs:string"/>
      <xs:element name="shipto">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="name" type="xs:string"/>
            <xs:element name="address" type="xs:string"/>
            <xs:element name="city" type="xs:string"/>
            <xs:element name="country" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="item" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="title" type="xs:string"/>
            <xs:element name="note" type="xs:string" minOccurs="0"/>
            <xs:element name="quantity" type="xs:positiveInteger"/>
            <xs:element name="price" type="xs:decimal"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="orderid" type="xs:string" use="required"/>
  </xs:complexType>
</xs:element>

</xs:schema>

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

4 ответов


этот ответ одинаково для вас, а также @Alex, @Michael и @42. Я иллюстрирую его с помощью Excel 2010, поэтому, если вы находитесь в другой версии, я оставлю вам возможность внести необходимые изменения.

во-первых, убедитесь, что вкладка Разработчик показывает (нажмите вкладку Файл, Параметры).

Excel 2010 options for Developer tab

теперь вам нужно создать источник XML из вашего XSD: перейдите на вкладку Разработчик; в группе XML переключите кнопку Источник, чтобы показать задачу источник Xml панели; нажмите кнопку карты XML.

Excel showing key UI elements for creating an XML map

Нажмите кнопку Добавить в приглашении; укажите файл XSD; затем нажмите кнопку ОК, чтобы вернуться к главному экрану.

Excel showing XSD loaded in an XML map

затем вы можете перетащить свой shipOrder в ячейку на листе, чтобы закрепить сгенерированную сопоставленную таблицу.

Excel showing mapped XSD

далее, Вы можете использовать импорт, чтобы получить ваши данные XML в электронную таблицу, и экспорт, чтобы получить его. Есть несколько дополнительные вещи, на которые стоит обратить внимание; Читать эта статья на сайте Microsoft; обратите особое внимание на проблемы с экспортом XML-данных (ошибка XML-карты в моей книге не экспортируются). Это из-за 1 ко многим кардинальности между shiporder и item. Вы можете попытаться справиться с этим, используя сопоставленные диапазоны — я оставлю все это на вас. Лучше всего было бы вам прочитать онлайн-справку для раздела разработчика XML…


на MS Excel ->File ->Open. Выберите файл xsd.

вам будет предложено, как вы хотели бы открыть файл. Вы можете выбрать опцию «в качестве таблицы XML». Сохраните файл в формате Excel.

2

автор: Ashwath Padmashali


вы можете сохранить файл как XML-файл, а затем открыть его в Excel и открыть как «книгу только для чтения» при появлении запроса. Однако он не будет в хорошем формате, но, по крайней мере, все данные (вместе с XML-дорожки в виде столбцов) будет там.

вы можете редактировать данные по мере необходимости. Все остальное потребует некоторой обработки.


выберите весь текст XSD в текстовом редакторе, скопируйте его в буфер обмена, щелкните ячейку в электронной таблице Excel и выполните вставку. Ваши данные XSD теперь будут в вашей электронной таблице.

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


Опубликовано:

18 марта 2010 в 14:52

13

20

Очень часто при автоматизации бизнес процессов требуется формировать электронные документы на основе структурированных данных. Источником структурированных данных обычно являются справочники системы DIRECTUM. Потребность формирования электронных документов
возникает по следующим причинам:

  • Электронный документ — удобное представление для согласования информации. Возможность отображать данные из нескольких источников данных;
  • Возможность установки ЭЦП — дополнительная защита результатов согласования;

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

  • Высокая трудоемкость разработки, которая обычно связана с необходимостью программирования визуальной части отчета. Это относится к rtf и Excel/html отчетам в системе DIRECTUM.
  • Шаблон отчета находится в разработке, что не позволяет пользователям системы изменять настройку представления. Например, заказчики часто хотят добавлять в отчеты, генерируемые системой, свой логотип.

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

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

 

XSD схема – это обычный XML файл, в котором описаны элементы данных. XSD схема для приведенного примера выглядит следующим образом:

  

Для формирования XSD схемы рекомендую использовать инструменты Visual Studio 2008, но можно сделать и в обычном текстовом редакторе.

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

1. Подготовить XML файл с данными, соответствующий подключенной XSD схеме шаблона. XML данные для описанной в примере XSD схемы будут выглядеть следующим образом:

Формирование XML документа на ISBL нужно выполнить с помощью библиотеки msxml.dll:

…
REPORT_NAME = “ВыпискаПоСчету_карта” 
XMLDocument = CreateObject("MSXML.DOMDocument")
ProcInstruction = XMLDocument.CreateProcessingInstruction("xml"; 'version="1.0" encoding="windows-1251" standalone="yes"')
XMLDocument.appendChild(ProcInstruction)
RootElement = XMLDocument.CreateElement(REPORT_NAME)
XMLDocument.appendChild(RootElement)
…

2. Получить шаблон документа и экспортировать его на диск.

…
TemplateID = Конст(‘xxx’)
Template = Edocuments.GetObjectByID(TemplateID)
Template.Export(VersionNumber; Path; FALSE)
…

3. Открыть экспортированный шаблон в Excel и передать в него подготовленные данные:

…
Excel = CreateObject("Excel.Application")  
Book = Excel.WorkBooks.Open(Path)
Sheet = Book.WorkSheets(1)
// Загрузка данных в Excel
XmlMap = Book.XmlMaps(REPORT_NAME)
XmlMap.ImportXML(XMLDocument.xml)
Book.Save
Book.Close
Excel.Quit
…

4. При необходимости открыть документ для просмотра либо сразу сохранить документ в хранилище системы DIRECTUM.

Пример сформированного документа «Выписка по счету»:

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

scheme.zip (531,00 байт)

Понравилась статья? Поделить с друзьями:
  • Как использовать xml в word
  • Как использовать word по умолчанию
  • Как использовать word на сайте
  • Как использовать word на маке
  • Как использовать word на macbook