2010-11-08 41 views
0

J'utilise pyodbc pour accéder à un fichier d'accès (accdb). Je souhaite ajouter un classeur Excel dans la base de données d'accès par programmation, mais je ne trouve pas d'API pour le faire. Voici mon code actuel:Python: Ajout d'un fichier Excel à une base de données d'accès

import pyodbc 
DBFile = r'C:\Documents and Settings\IA.accdb' 
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ='+DBFile) 

exFile = r'C:\Documents and Settings\IA_2006.xls' 
conn1 = pyodbc.connect('DRIVER={Microsoft Excel Driver \ 
         (*.xls)};DBQ='+exFile,autocommit=True) 

cursor = conn.cursor() 
####IA_1 is a table within IA.accdb 
cursor.execute('select * from IA_1') 
row = cursor.fetchone() 
####For debugging, print a line 
if row: 
     print row 

Comment dois-je importer les données à partir du fichier Excel (IA_2006.xls) dans le IA.accdb?

Merci!

Répondre

3

Il semble que vous ayez atteint un certain point et abandonné.
N'abandonnez pas! :-)

Vous avez établi la connexion à la feuille de calcul Excel, vous devez maintenant la lire *.

curs1 = conn1.cursor() 
# the following returns list of tuples 
excel_results = curs1.execute('select [a_column] 
           from [Sheet1$]').fetchall() 

Ensuite, vous pouvez insérer dans votre MS Access db, par exemple .:

curs.executemany('insert into mytable (mycolumn) values (?)', excel_results) 
conn.commit() 

* En cas de doute, les noms de feuille Excel peuvent être trouvées en exécutant la commande suivante:

for row in curs1.tables(): 
    print row.table_name