2016-03-03 62 views
1

从Excel中数据的网站,我想用PowerShell脚本从一个Excel工作表中获取数据来查询网上数据库查询与使用PowerShell

我用这个代码从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来做到这一点? 感谢

回答

1

使用$ ws.Columns

例(获得COLUMN2文,第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 

然后,如果你想在它们之间迭代你将不得不在心中的疑问的数组。

+0

您还可以使用范围操作:$ WS .range(“A1”)。text,它将向您显示A1单元格的内容 – Martin

+0

好主意,用示例更新答案。 – CmdrTchort

+0

非常感谢,我如何参考电子表格,我的Excel文件有多个电子表格 –

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 

万一有人需要它