【发布时间】:2021-12-05 15:36:04
【问题描述】:
我正在尝试为创建的每个工作表创建一个数据透视表。 我遇到的问题是 Excel 抛出错误并说第一个数据透视表不可读且不可恢复,并且该表现在是空白的。
我故意没有在这段代码中指定要透视的数据,我只是想看看数据透视表的创建和链接是否正确。
function createDT()
{
###Creating a new DataTable###
$tempTable = New-Object System.Data.DataTable
##Creating Columns for DataTable##
$query = New-Object System.Data.DataColumn(“query”)
$sheetName = New-Object System.Data.DataColumn(“sheetName”)
$format = New-Object System.Data.DataColumn(“format”)
$pivotRow = New-Object System.Data.DataColumn(“pivotRow”)
$pivotData = New-Object System.Data.DataColumn(“pivotData”)
###Adding Columns for DataTable###
$tempTable.columns.Add($query)
$tempTable.columns.Add($sheetName)
$tempTable.columns.Add($format)
$tempTable.columns.Add($pivotRow)
$tempTable.columns.Add($pivotData)
return ,$tempTable
}
###Create a new DataTable###
[System.Data.DataTable]$dTable = createDT
###Add a row to DataTable###
$row = $dTable.NewRow()
$row[“query”] = “SELECT * FROM exampletable”
$row[“sheetName”] = “exampletable”
$row[“format”] = "Medium2"
$row[“pivotRow”] = "row"
$row[“pivotData”] = "data"
$dTable.rows.Add($row)
###Add a row to DataTable###
$row = $dTable.NewRow()
$row[“query”] = “SELECT * FROM exampletable2”
$row[“sheetName”] = “exampletable2”
$row[“format”] = "Medium2"
$row[“pivotRow”] = "row"
$row[“pivotData”] = "data"
$dTable.rows.Add($row)
###Length of the data table###
$dtLength = $dTable.Rows.Count
for ($i = 0; $i -lt $dtLength; $i++)
{
$pvTable = New-PivotTableDefinition -PivotTableName $i -SourceWorksheet $dTable.sheetName[$i]
Invoke-SQLCmd -query $dTable.query[$i] -database $dbname -serverinstance $ServerName | Export-Excel -workSheetName $dTable.sheetName[$i] -TableStyle $dTable.format[$i] -BoldTopRow -path $destination -AutoSize -AutoFilter -PivotTableDefinition $pvTable
}
【问题讨论】:
标签: sql excel powershell