Windows Powershell 2.0 - 如何将ODBC从系统DSN读取到Excel 2007工作表中

时间:2010-07-04 04:12:59

标签: excel powershell odbc

我在Excel文档中看到了QueryTables集合和ODBCConnection对象,但没有在powershell中使用它们。

我想创建一个包含单个工作表的新工作簿,连接到系统DSN(不需要login / passowrd),然后运行“SELECT * FROM someTable”并将结果放入工作表中。 Excel是2007; powershell是2.0; odbc连接是系统DSN。

由于

3 个答案:

答案 0 :(得分:1)

对我来说,结果就像(使用$ ws作为工作表)一样简单

$qt = $ws.QueryTables.Add("ODBC;DSN=favoriteDSN", ws.Range("A1"), "SELECT * FROM faveTable")
$qt.Refresh()
$wb.SaveAs("H:\favoriteNewFile.xlsx")

答案 1 :(得分:0)

对于Excel部分,您可以使用带有-COM参数的new-object cmdlet来实例化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)。有关详细信息,请参阅这两部分文章(part onepart two)。

答案 2 :(得分:0)

我会继续按照基思的方式前进 在Excel中记录宏并在工作表中插入数据连接以绘制表格。录制的宏中的代码将指向使用上述方法直接从Powershell将表插入工作表所需的对象和方法。