Tôi đang cố gắng để tạo ra một QueryTable trong một bảng tính excel bằng cách sử dụng Python comtypes thư viện, nhưng nhận được một lỗi khá uninformative ...Vấn đề sử dụng thư viện Python comtypes để thêm một querytable sang Excel
Trong VBA (trong một mô-đun trong workbook), đoạn mã sau hoạt động tốt:
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
Nhưng mã Python sau:
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()
ném được thông báo lỗi vô ích:
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))
Mọi ý tưởng về những gì đang xảy ra ở đây?
Cảm ơn!
Eli, khoảng trống thừa bạn đã có để làm cho mọi thứ xuất hiện chính xác trên bản xem trước. Bây giờ tôi tò mò: Tôi bị mắc kẹt nhưng chính sách của công ty sử dụng IE6 đòi hỏi không gian để nhìn đúng - nó có nhìn ngay trên các trình duyệt khác không có nó? – mavnn
Nó vẫn ổn với tôi trong Firefox 3.0.7 – tgray
Bạn cũng có thể muốn thêm thẻ Visual Basic hoặc VBA vào câu hỏi ... – tgray