Программное внедрение XML-данных в книгу Excel 2007 - PullRequest
2 голосов
/ 06 октября 2009

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

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

Я экспериментировал с новым SDX 2.0 форматов документов OpenXml (используя C #) и обнаружил, что он предлагает большую гибкость при чтении и работе с книгами Excel. Тем не менее, чем больше я углубляюсь в это, тем больше я обнаруживаю, что это требует глубоких знаний о внутренней работе Excel. Например, тот факт, что таблицы, рабочие таблицы и цепочка вычислений хранятся отдельно в пакете, проверяет границы моего понимания. Я обеспокоен тем, что мое «решение» может проявлять неожиданное поведение в различных сценариях данных.

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

Учитывая, что Excel способен связываться с внешними источниками данных, включая данные XML, возможно ли, чтобы мой набор данных был сохранен в виде файла XML и внедрен в файл пакета рабочей книги? Другими словами, возможно ли, чтобы «внешний» источник данных находился внутри пакета рабочей книги? Если да, то как мне определить таблицу заполнителей в шаблоне, которая будет автоматически связываться с введенными данными при открытии рабочей книги?

Большое спасибо за ваши предложения.

Ответы [ 3 ]

1 голос
/ 14 января 2010

Это несколько иной подход, но я обнаружил, что Apache POI (http://poi.apache.org/) отлично подходит для создания книг Excel. Мне еще не удалось найти нужную функцию Excel, которая не поддерживалась. Он также не требует глубоких знаний Excel и поставляется с хорошей библиотекой примеров.

Мне тоже пришлось конвертировать данные на основе XML в Excel. Я написал код, который использовал POI в Scala, чтобы воспользоваться его замечательной библиотекой обработки XML.

0 голосов
/ 20 октября 2009

Вы можете попробовать создать пользовательскую кнопку (на панели ленты?), Чтобы прочитать XML и заполнить лист для вас.

VSTO ваш друг там. :)

0 голосов
/ 08 октября 2009

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

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