10 июня 2010

Выгрузка данных в Excel с использованием OpenXML PowerTools

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


OpenXML PowerTools

Вобщем это библиотека .NET которую можно запускать с PowerShell и работать с OpenXML форматом. OpenXML формат - это файлики xlsx и docx (и еще много других форматов Microsoft Office). Причём библиотеке не требуется установленного Microsoft Office Excel для работы с файлом xlsx


Пример работы
(Собственно именно это меня и заинтреговало)
Get-Process | Export-OpenXmlSpreadsheet -OutputPath .\test.xlsx


На выходе получаем Excel файл со списком процессов.


Как инсталлировать
Боролся полдня над установкой этой библиотеки. Поэтому поделюсь своими (успешными) шагами.
1. Скачиваем уже откомпилированную версию библиотеки
2. Скачиваем вот этот OpenXML SDK2 "с какого-то русского сайта"
3. Устанавливаем SDK, потом регистрируем библиотеку.
4. Запускаем PowerShell и добавляем Snapin
      Set-ExecutionPolicy unrestricted
      Add-PSSnapin OpenXML.PowerTools
5. Проверяем
     Get-Process | Export-OpenXmlSpreadsheet -OutputPath test.xlsx


Имеется полная видео-версия процесса установки, включая компиляцию на VisualStudio Это для любителей и профессионалов VisualStudio. У меня и без него получилось.


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

P.S. Не знаю зачем, но на глаза мне попалось еще и вот это: Simple OpenXML библиотека

Комментариев нет: