Преобразовать xs: перечисления в XSD в выпадающие списки в Excel - PullRequest
4 голосов
/ 23 февраля 2010

У меня есть XSD-файл, который содержит схему для моего XML. Файл XSD содержит определение xs:Enumeration, которое позволяет мне выбирать из 5 опций в качестве значения для одного из узлов.

Теперь мы хотим иметь возможность генерировать эти данные с помощью Excel, чтобы их могли создавать нетехнические люди.

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

Как мне это сделать?

Редактировать: Начиная щедрость. Чтобы выиграть, мне нужен рабочий пример кода для этого:)

Ответы [ 2 ]

9 голосов
/ 01 марта 2010

Как говорит xcut, простого способа сделать это не существует. Но это может быть сделано. Что вам нужно сделать, это:

  1. Используйте WorkbookAfterXmlImport событие для чтения вашей схемы с MSXML для ваших перечислений.
  2. Найдите сопоставленный столбец в ваших данных таблица для элемента, который имеет ваш перечисления в коде. Обычно это ListObject.
  3. Добавить эти перечисления в список в Validation.InCellDropdown к вашему диапазон отображаемых столбцов, минус заголовок.
2 голосов
/ 24 февраля 2010

Я вчера несколько раз баловал глаза на этот вопрос и не ответил на него, отчасти потому, что нет быстрого решения того, что вы пытаетесь сделать.

Вам немного неясно, что именно вы пытаетесь достичь: экспортировать перечисления из Excel в виде схемы или импортировать перечисления из схемы в Excel, или обратно.

Если вы хотите сохранить электронную таблицу в качестве «основной» копии, вы можете сделать следующее:

  • Основные перечисления в Excel (например, столбец A имеет имя типа, а строки в столбце B имеют значения)
  • Периодически, когда вам нужно, нажимайте «Сохранить как ...» XML Spreadsheet
  • Запустите XSLT в электронной таблице XML, чтобы создать файл схемы

Ну, по крайней мере, это идея :) В качестве альтернативы, вы можете написать в нее код VBA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...