Я пытаюсь создать QueryTable в таблицу Excel с помощью Питон comtypes библиотеки, но получить довольно неинформативное ошибку ...Проблема с использованием библиотеки Python comtypes добавить QueryTable в Excel
В УВА (в модуль в рабочей книге), следующий код работает отлично:
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
Но следующий код 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()
Выдает сообщение об ошибке бесполезного:
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))
Любые идеи о том, что здесь происходит?
Спасибо!
Эли, дополнительное пространство вы удалили там, чтобы сделать вещи появляются правильно на предварительном просмотре. Мне сейчас любопытно: я застрял, но корпоративная политика, использующая IE6, которая требует, чтобы пространство выглядело правильно - разве это выглядело прямо на других браузерах без него? – mavnn
Он по-прежнему выглядит хорошо для меня в Firefox 3.0.7 – tgray
Вы также можете добавить тег Visual Basic или VBA к вопросу ... – tgray