Maison > développement back-end > Tutoriel Python > Introduction à la méthode de conversion d'Excel en SQLite en Python

Introduction à la méthode de conversion d'Excel en SQLite en Python

黄舟
Libérer: 2017-07-17 14:41:46
original
1492 Les gens l'ont consulté

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 ------"
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal