Windows Powershell 2.0 - Как я могу прочитать ODBC из системного уведомления о доставке в Excel 2007 - PullRequest
0 голосов
/ 04 июля 2010

В документации Excel я вижу коллекцию QueryTables и объект ODBCConnection, но не то, как их использовать в powershell.

Я хочу создать новую рабочую книгу с одним рабочим листом, подключиться к системному DSN (не требуется вход в систему / пароль), запустить «SELECT * FROM someTable» и получить результаты в рабочей таблице. Excel 2007; PowerShell составляет 2,0; соединение odbc является системным DSN.

Спасибо

Ответы [ 3 ]

1 голос
/ 31 июля 2010

Для меня это оказалось так же просто, как (с $ ws в качестве рабочего листа)

$qt = $ws.QueryTables.Add("ODBC;DSN=favoriteDSN", ws.Range("A1"), "SELECT * FROM faveTable")
$qt.Refresh()
$wb.SaveAs("H:\favoriteNewFile.xlsx")
0 голосов
/ 07 июля 2010

Я бы продолжал идти тем же путем, что и Кит.
Запишите макрос в Excel и вставьте соединение данных в лист, чтобы составить таблицу.Код в записанном макросе будет указывать на объекты и методы, которые вам понадобятся для вставки таблицы в ваш рабочий лист непосредственно из Powershell, используя описанный выше подход.

0 голосов
/ 04 июля 2010

Для части Excel вы можете использовать командлет new-object с параметром -COM для создания экземпляра листа Excel:

$xl = New-Object -Com Excel.Application
$xl.Visible = $true
$wb = $xl.Workbooks.Add()
$ws = $wb.Worksheets.Item(1)
$ws.Cells.Item(1,1) = 1

Тогда для доступа к базе данных я бы использовал слой доступа к .NET DB (PowerShell может довольно легко обращаться к .NET). Подробности см. В статье из двух частей ( часть первая , часть вторая ).

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