Próbuję utworzyć QueryTable w arkuszu kalkulacyjnym Excel przy użyciu Python comtypes bibliotekę, ale coraz raczej uninformative błąd ...Problem przy użyciu biblioteki Pythona comtypes dodać QueryTable do Excela
w VBA (w sposób moduł w skoroszycie), następujący kod działa poprawnie:
Sub CreateQuery()
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim ws As Worksheet
Dim qt As QueryTable
Set ws = ActiveWorkbook.Sheets(1)
Set con = New ADODB.Connection
con.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Path\to\Db.mdb;")
Set rs = New ADODB.Recordset
rs.Open "Select * from [tbl Base Data];", con
Set qt = ws.QueryTables.Add(rs, ws.Range("A1"))
qt.Refresh
End Sub
Ale następujący kod Python:
import sys
import comtypes.client as client
def create_querytable():
constring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Path\\to\\Db.mdb"
conn = client.CreateObject("ADODB.Connection", dynamic = True)
rs = client.CreateObject("ADODB.Recordset", dynamic = True)
SQL = "Select * from [tbl Base Data];"
conn.Open(constring)
rs.Open(SQL, conn)
excel = client.CreateObject("Excel.Application", dynamic = True)
excel.Visible = True
ws = excel.Workbooks.Add().Sheets(1)
qt = ws.QueryTables.Add(rs, ws.Range["A1"])
qt.Refresh()
rs.Close()
conn.Close()
rzuca pomocny komunikat o błędzie:
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
create_querytable()
File "C:/Documents and Settings/cvmne250/Desktop/temp.py", line 17, in create_querytable
qt = ws.QueryTables.Add(rs, ws.Range["A1"])
File "G:\ISA\SPSS\comtypes\lib\comtypes\client\lazybind.py", line 160, in caller
File "G:\ISA\SPSS\comtypes\lib\comtypes\automation.py", line 628, in _invoke
COMError: (-2147352567, 'Exception occurred.', (None, None, None, 0, None))
Jakieś pomysły na to, co się tutaj dzieje?
Dzięki!
Eli, dodatkową przestrzeń usunięto było dokonać rzeczy pojawiają się poprawne na podglądzie. Jestem teraz ciekawy: utknąłem, ale polityka korporacyjna używa IE6, która wymaga przestrzeni, aby wyglądać dobrze - czy bez niej wyglądała ona w innych przeglądarkach? – mavnn
Wciąż wygląda mi dobrze w Firefoksie 3.0.7 – tgray
Możesz również dodać tag Visual Basic lub VBA do pytania ... – tgray