Cet article présente principalement la méthode de conversion d'Excel en sqlite en Python, et analyse les compétences opérationnelles associées de Python basées sur la bibliothèque tierce xlrd pour lire des fichiers Excel et écrire sur sqlite sous la forme d'exemples. Amis qui en ont besoin Vous pouvez vous référer à ce qui suit
L'exemple dans cet article décrit la méthode de conversion d'Excel en SQLite en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Je ne parlerai pas de l'installation et de la configuration de l'environnement Python. J'aime personnellement l'environnement de développement pydev.
Python doit utiliser une bibliothèque tierce pour analyser Excel. Ici, nous choisissons d'utiliser xlrd
Premier coup d'œil au contenu Excel :
Ensuite, la base de données est générée :
Voici le code source :
#!/usr/bin/python # encoding=utf-8 ''''' Created on 2013-4-2 @author: ting ''' from xlrd import open_workbook import sqlite3 import types def read_excel(sheet): # 判断有效sheet if sheet.nrows > 0 and sheet.ncols > 0: for row in range(1, sheet.nrows): row_data = [] for col in range(sheet.ncols): data = sheet.cell(row, col).value # excel表格内容数据类型转换 float->int,unicode->utf-8 if type(data) is types.UnicodeType: data = data.encode("utf-8") elif type(data) is types.FloatType: data = int(data) row_data.append(data) check_data_length(row_data) # 检查row_data长度 def check_data_length(row_data): if len(row_data) == 3: insert_sqlite(row_data) def insert_sqlite(row_data): # 打开数据库(不存在时会创建数据库) con = sqlite3.connect("test.db") cur = con.cursor() try: cur.execute("create table if not exists contacts(_id integer primary key "\ "autoincrement,name text,age integer,number integer)") # 插入数据不要使用拼接字符串的方式,容易收到sql注入攻击 cur.execute("insert into contacts(name,age,number) values(?,?,?)", row_data) con.commit() except sqlite3.Error as e: print "An error occurred: %s", e.args[0] finally: cur.close con.close xls_file = "test.xls" book = open_workbook(xls_file) for sheet in book.sheets(): read_excel(sheet) print "------ Done ------"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!