我在Excel文档中看到了QueryTables集合和ODBCConnection对象,但没有在powershell中使用它们。
我想创建一个包含单个工作表的新工作簿,连接到系统DSN(不需要login / passowrd),然后运行“SELECT * FROM someTable”并将结果放入工作表中。 Excel是2007; powershell是2.0; odbc连接是系统DSN。
由于
答案 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 one,part two)。
答案 2 :(得分:0)
我会继续按照基思的方式前进 在Excel中记录宏并在工作表中插入数据连接以绘制表格。录制的宏中的代码将指向使用上述方法直接从Powershell将表插入工作表所需的对象和方法。