1
我有一個數據透視表,我想通過python以編程方式重新創建數據透視表。有沒有辦法檢索數據透視表的當前sql代碼,以供我在python中使用它?如何從Excel 2007數據透視表檢索sql代碼
我有一個數據透視表,我想通過python以編程方式重新創建數據透視表。有沒有辦法檢索數據透視表的當前sql代碼,以供我在python中使用它?如何從Excel 2007數據透視表檢索sql代碼
我最近寫了這個。它可能適合你。它會嘗試將活動工作簿的數據透視表緩存和/或查詢表數據複製到剪貼板。它被On Error Resume Next所包圍,所以如果它沒有找到它繼續前進的特定數據段:
Sub Copy_Connection_Info_To_Clipboard()
Dim ptCache As Excel.PivotCache
Dim qtQueryTable As Excel.QueryTable
Dim strPtCacheInfo As String
Dim strQueryTableInfo As String
Dim ws As Excel.Worksheet
Dim strConnectionInfo As String
Dim doConnectionInfo As DataObject
On Error Resume Next
For Each ptCache In ActiveWorkbook.PivotCaches
With ptCache
strPtCacheInfo = _
strPtCacheInfo _
& "PivotCache #" & "Index: " & .Index & vbCrLf & vbCrLf _
& "SourceDataFile: " & .SourceDataFile & vbCrLf & vbCrLf _
& "CommandText: " & .CommandText & vbCrLf & vbCrLf _
& "SourceConnectionFile: " & .SourceConnectionFile & vbCrLf & vbCrLf _
& "Connection: " & .Connection & vbCrLf & vbCrLf
End With
Next ptCache
If strPtCacheInfo <> "" Then
strPtCacheInfo = "PivotCache Info" & vbCrLf & vbCrLf & strPtCacheInfo
End If
For Each ws In ActiveWorkbook.Worksheets
If ws.QueryTables.Count > 0 Then
strQueryTableInfo = "Worksheet: " & ws.Name & vbCrLf
For Each qtQueryTable In ActiveSheet.QueryTables
With qtQueryTable
strQueryTableInfo = _
strQueryTableInfo _
& "QueryTable Name: " & .Name & vbCrLf & vbCrLf _
& .SourceDataFile & vbCrLf & vbCrLf _
& .CommandText & vbCrLf & vbCrLf _
& .SourceConnectionFile & vbCrLf & vbCrLf _
& .Connection & vbCrLf & vbCrLf
End With
Next qtQueryTable
End If
Next ws
If strQueryTableInfo <> "" Then
strQueryTableInfo = "Query Table Info" & vbCrLf & strQueryTableInfo
End If
strConnectionInfo = strPtCacheInfo & strQueryTableInfo
If strConnectionInfo <> "" Then
Set doConnectionInfo = New DataObject
doConnectionInfo.SetText strConnectionInfo
doConnectionInfo.PutInClipboard
End If
End Sub
Thanks!它確實工作:) – ichigo 2010-12-30 15:24:58