如何使用导入Excel模块为每个工作表创建一个数据透视表?



我试图为每个工作表创建一个数据透视表。我遇到的问题是,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 

}

我相信我现在已经找到了一个解决方法…当我移除-TableStyle $dTable.format[$i]错误消失,数据透视表工作

最新更新