Пакетный файл (.bat) для открытия и сохранения файла Excel

#excel #batch-file #ssis

#excel #пакетный файл #ssis

Вопрос:

У меня есть файл Excel на сервере в формате .xls. Я думаю, что это сгенерировано в какой-то более поздней версии Microsoft Office Excel.

У меня есть несколько пакетов SSIS, которые не могут прочитать эти файлы.

Когда я открываю и сохраняю эти файлы как рабочую книгу 97-2003 (расширение .xls) и запускаю пакеты SSIS, он выполняется успешно.

Я не могу вносить какие-либо изменения в SSIS, поэтому я подумал о написании пакета (.bat), который я могу запланировать до запуска моего SSIS, чтобы открыть и сохранить файл Excel в требуемом формате (что я сейчас делаю вручную), чтобы мой SSIS успешно работал.

Как я мог это реализовать?

Есть ли какой-нибудь лучший способ?

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

1. какое отношение к этому имеет C #?

2. Что вы исследовали до сих пор, прежде чем попросить нас описать (подробно), что вам нужно сделать?

Ответ №1:

Для автоматизации задач сервера попробуйте использовать PowerShell. Это действительно легко понять и использовать.

Ресурсы:

конвертируйте ваши ‘старые’ файлы XLS в новый формат XLSX

Скрипт Powershell для рекурсивного преобразования всех документов xls в xlsx в папке

Excel конвертирует .xls в .xlsx

Ответ №2:

Создайте сценарий vbs.

 set xlapp = createobject("Excel.Application")
xlapp.Workbooks.Open "C:UsersUserDocumentsSuper.xls"
'43 is 95/97 look up xlExcel9795 in object browser to see other options
xlapp.ActiveWorkbook.SaveAs "C:UsersUserDocumentsSuper.xls", 43
  

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

1. : когда я пытаюсь сохранить в формате excel .xls $workbook.saveas ($path, [Microsoft. Офис. Взаимодействие. Excel. XlFileFormat]::xlExcel8) , открытый файл Excel получит сообщение с запросом для ПРОДОЛЖЕНИЯ . Пока я не продолжу вручную, мой скрипт не сможет продолжить. Что можно сделать, чтобы отключить приглашение или нажать продолжить из самого сценария powershell, чтобы весь код мог обрабатываться без остановки.

2. Этот комментарий не имеет никакого отношения к ответу. Это powershell.