使用Powershell从Excel查询包含数据的网站

时间:2016-03-03 10:50:57

标签: html excel powershell

我想使用powershell脚本从Excel工作表中获取数据以查询在线数据库

我使用此代码从powershell

打开电子表格
$xl = New-Object -COM "Excel.Application"
$xl.Visible = $true
$wb = $xl.Workbooks.Open("C:\Documents\Book4.xlsx")
$ws = $wb.Sheets.Item(1)

但我无法真正处理电子表格,即参考单元格。 我需要的是选择单个单元格的内容,存储在变量中并用于填充在线数据库的查询。

我使用此代码访问网站网址

$IE=new-object -com internetexplorer.application
$IE.navigate2("http://www.google.com")
$IE.visible=$true

但我无法填写表格或查询数据库。

请问如何使用PowerShell执行此操作? 感谢

2 个答案:

答案 0 :(得分:1)

使用$ ws.Columns

示例(获取第2栏第2行中的文字):

$query = $ws.Columns[2].Rows[2].Text

然后您可以使用查询字符串并使用导航到谷歌,例如:

$IE.navigate2(("http://www.google.com?q={0}" -f $query))

您也可以使用范围来获取单元格(如果是多个)并选择它的文本。

示例(在A2-A99之间获取单元格,并选择文本):

$queries = $ws.Range("A2","A99")|select Text

如果你想迭代它们,那么你将会有一个包含查询的数组。

答案 1 :(得分:0)

非常感谢你们。

此代码适用于谷歌,但您可能需要在浏览器启动时对查询进行一些格式化

#To open spreadsheet
$xl = New-Object -COM "Excel.Application" 
$xl.Visible = $true
$wb = $xl.Workbooks.Open("C:\Users\Documents\Book4.xlsx")
$ws = $wb.Sheets.Item("Team Sheet") #Incase of multiple sheets
$queries = $ws.Range("D9")|select Text #specify cell use ("D9", "D99") for range 
#$queries 

#To open urls
$IE=new-object -com internetexplorer.application
$IE.navigate2(("http://www.google.com?q={0}" -f $queries))
$IE.visible=$true

万一有人需要它