Дублирование XML -> Excel -> XML

Я хотел бы использовать Excel Функция XML Map из C# на стороне сервера в веб-приложении. Карты XML позволяют связать схему XML с книгой и указать, какие ячейки соответствуют частям схемы. Оттуда вы можете импортировать XML-файлы для обновления значений ячеек и экспортировать XML-файлы, содержащие последние значения (т. е. если они были изменены вручную). Вы можете сделать это вручную на вкладке «Разработчик» в Excel.

У нас уже есть лицензия на Aspose Cells, но (несмотря на некоторую недавнюю работу в этой области) похоже, что она не полностью поддерживает карты XML. Кто-нибудь добился успеха в этом?

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

XmlMap map = workbook.XmlMaps.Add(xmlSchema, Missing.Value);

// map cell C3 to the question text
var worksheet = (Worksheet)workbook.Worksheets[1];
Range cell = (Range)worksheet.Cells[3, 3];
cell.XPath.Clear(); // just in case
cell.XPath.SetValue(map, "/Root/Question/Text", Missing.Value, false);

// import the XML to populate the mapped cells
map.ImportXml(xmlData, true);

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

Можно ли использовать Open XML SDK от Microsoft импортировать или экспортировать XML через карту XML? Я нашел класс Map. , но я думаю, что это просто метаданные уже существующей карты. Содержит ли SDK подобную логику преобразования или он просто представляет содержимое рабочего листа в виде классов?


person Matthew Strawbridge    schedule 18.12.2012    source источник
comment
Вы можете попробовать EPPLUS, бесплатную программу чтения/записи Excel. Я не смог найти его карту характеристик, но она огромна...   -  person Christian Sauer    schedule 19.12.2012
comment
@ChristianSauer Спасибо. Похоже, он находился в разработке в мае 2011 года (epplus.codeplex.com/discussions/257364) так что я следил, чтобы спросить, если это еще.   -  person Matthew Strawbridge    schedule 19.12.2012
comment
Ах, пожалуйста, добавьте результат сюда, спасибо!   -  person Christian Sauer    schedule 19.12.2012


Ответы (1)


Для дальнейшего предоставления вам подробной информации о функции XMLMaps, в настоящее время Aspose.Cells поддерживает только следующие параметры, касающиеся XML-карт:

  1. Он может сохранить XmlMaps в файле шаблона и повторно сохранить файл вместе с ним.
  2. Он поддерживает импорт XML-сопоставления из внешних источников.
  3. Он может удалить или проверить сопоставления XML.

В настоящее время он не поддерживает следующее:

  1. Он не может добавлять карты XML в файл Excel.
  2. Он не экспортирует карты XML для сохранения внешнего файла (мы постараемся поддерживать экспорт карт XML во втором квартале 2013 г.)

Меня зовут Найер, и я являюсь разработчиком-евангелистом в Aspose.

person codewarior    schedule 26.12.2012