Как использовать powershell для получения данных из Excel и выбора из SQL - PullRequest
0 голосов
/ 03 июня 2019

У меня есть файл Excel, который содержит список информации о персонале, теперь я хочу использовать столбец Staff_ID в xlsx , чтобы выбрать эти Staff_ID из sql таблицы иполучить результат по e xport_CSV, поэтому я пытаюсь написать PowerShell, который можно запустить в задании по расписанию.

Как мне получить информацию из Excel и выбрать эти данные из таблицы SQL?

$SQLServer = "ServerName"
    $SQLDBName = "DBName"
    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $SqlConnection.ConnectionString = "Server = $SQLServer; Database = 
    $SQLDBName; User ID= YourUserID; Password= YourPassword" 
    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
    $SqlCmd.CommandText = 'StoredProcName'
    $SqlCmd.Connection = $SqlConnection 
    $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
    $SqlAdapter.SelectCommand = $SqlCmd 
    $DataSet = New-Object System.Data.DataSet
    $SqlAdapter.Fill($DataSet) 
    $SqlConnection.Close() 
    $gSqlAuthMode = True
    SELECT * FROM [DBName].[dbo].[DETAILS] WHERE [STATUS] not like 'Inactive-%'  ORDER BY NUMBER ASC 


    $List = Import-XLSX -Path "D:\Stafflist.xlsx"

    foreach ($item in $List){
        If ((?? -eq $item.StaffCuid.toUpper().trim())) {
                $Report = [PSCustomObject] @{
            }
        }
    }

$Report | Export-Csv D:\report.csv -Delimiter "," -NoTypeInformation -append
}

1 Ответ

0 голосов
/ 03 июня 2019

Вы можете использовать Import-Excel командлет из известного ImportExcel модуля и Invoke-SQLCmd (часть инструментов управления SQL)

$Excel = Import-Excel -Path D:\Stafflist.xlsx
Foreach($Row in $Excel) {
 $StaffID = $Row.StaffCuid.toUpper().trim()
 $Query = "create your query here with $StaffId"
 Invoke-SQLCmd -Query $Query -ServerInstance "$ServerName\$DBName"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...