Excel Automation для бизнес-решений и обработки на стороне сервера - PullRequest
1 голос
/ 02 марта 2010

Наша компания имеет тысячи файлов Excel, где каждый файл Excel описывает одну сеть IPVPN. Эти файлы Excel следуют единому формату, в котором хранятся данные о контактной информации, подробностях сайта, спецификациях маршрутизатора, деталях первичной / резервной ссылки, VRF и т. Д.

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

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

Кроме того, один конкретный вопрос:

Если рабочий лист Excel содержит набор данных, может ли работать XML Mapping? Рабочий лист не содержит ни одной симпатичной таблицы, а лишь несколько строк и циклов в некоторых местах.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 02 марта 2010

Вы не упоминаете, каким образом изменяется формат, но нетрудно обновить последовательность рабочих книг, полученных из различных каталогов (FileSystemObject будет получать файлы), используя VBA. Если речь идет о манипулировании столбцами, ADO может быть лучшим выбором.

0 голосов
/ 02 марта 2010

Вот что Microsoft говорит об использовании COM для автоматизации Excel на сервере (см. в этой статье ):

" В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любых необслуживаемых неинтерактивных клиентских приложений или компонентов (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и / или тупиковую ситуацию при работе Office в этой среде."

SpreadsheetGear for .NET имеет API, аналогичный Excel. Вы можете посмотреть некоторые живые примеры ASP.NET здесь и загрузить бесплатную пробную версию здесь .

Отказ от ответственности: я владею SpreadsheetGear LLC

0 голосов
/ 02 марта 2010

Используйте powershell. Я не нахожусь рядом с коробкой, в которой установлен PowerShell (он поставляется с Win7, нужно установить его для XP, Vista, Server ....), но это будет что-то вроде этого (украдено из первого блога MSDN, который я нашел :
http://blogs.technet.com/heyscriptingguy/archive/2009/01/13/how-do-i-run-an-office-excel-macro-on-multiple-workbooks.aspx:

$excel = new-object -comobject excel.application
$excelFiles = Get-ChildItem -Path C:\fso -Include *.xls, *.xlsm -Recurse
Foreach($file in $excelFiles)
{
 $workbook = $excel.workbooks.open($file.fullname)
 $worksheet = $workbook.worksheets.item(1)
 $excel.Run("CreateChart")
 $workbook.save()
 $workbook.close()
}
$excel.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...