【问题标题】:How do you create one pivot table per worksheet using the Import Excel module?如何使用导入 Excel 模块为每个工作表创建一个数据透视表?
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-12-18
      • 1970-01-01
      • 2011-06-22
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 2022-08-19
      相关资源
      最近更新 更多