Мне нужно иметь возможность создать документ Excel с несколькими вкладками для набора данных с несколькими таблицами результатов \ данных.У меня есть хранимая процедура с 3-мя выборами, довольно простыми, которые извлекают данные из таблиц sys в SQL Server.
Ниже приведен мой сценарий, где я предполагаю, что будет 5 таблиц, если их будет больше, чемон будет пропущен, и если их будет меньше, остальные вкладки будут пустыми.
Какой лучший способ циклически пройти по набору данных и создать документ Excel?
$SQLServer = 'SQL';
$Database = 'SomeDataWarehouse';
$sqlCommand = "EXEC dbo.Select_TestForPowershell";
$connectionString = "Server=$SQLServer;Database=$Database;Integrated Security=true"
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString)
$command = New-Object System.Data.SqlClient.SqlCommand($sqlCommand, $connection)
$connection.Open()
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter $command
$dataset = New-Object System.Data.DataSet
$adapter.Fill($dataSet) > null
$connection.Close()
foreach ($table in $dataset.Tables) {
Write-Host $table.TableName
if ($($table.TableName) -eq 'table') {$Table1 = $table}
if ($($table.TableName) -eq 'table1') {$Table2 = $table}
if ($($table.TableName) -eq 'table2') {$Table3 = $table}
if ($($table.TableName) -eq 'table3') {$Table4 = $table}
if ($($table.TableName) -eq 'table4') {$Table5 = $table}
}
$DataToGather = @{
table = {$Table1}
table1 = {$Table2}
table2 = {$Table3}
table3 = {$Table4}
table4 = {$Table5}
}
#Export-MultipleExcelSheets -Show -AutoSize 'C:\Temp\Test.xlsx' $DataToGather
$DataToGather
$DataToGather.Clear()