Python实现excel转sqlite的方法


Posted in Python onJuly 17, 2017

本文实例讲述了Python实现excel转sqlite的方法。分享给大家供大家参考,具体如下:

Python环境的安装配置就不说了,个人喜欢pydev的开发环境。

python解析excel需要使用第三方的库,这里选择使用xlrd

先看excel内容:

Python实现excel转sqlite的方法

然后是生成的数据库:

Python实现excel转sqlite的方法

下面是源代码:

#!/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 ------"

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现过滤单个Android程序日志脚本分享
Jan 16 Python
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
浅析Python多线程下的变量问题
Apr 28 Python
python函数局部变量用法实例分析
Aug 04 Python
Python 闭包的使用方法
Sep 07 Python
Python实现的桶排序算法示例
Nov 29 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
django rest framework serializers序列化实例
May 13 Python
Tensorflow之MNIST CNN实现并保存、加载模型
Jun 17 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
Pytest测试框架基本使用方法详解
Nov 25 Python
PyChar学习教程之自定义文件与代码模板详解
Jul 17 #Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
Jul 17 #Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 #Python
Python 的类、继承和多态详解
Jul 16 #Python
PyQt 线程类 QThread使用详解
Jul 16 #Python
Pycharm技巧之代码跳转该如何回退
Jul 16 #Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 #Python
You might like
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
实例讲解React 组件
2020/07/07 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python的id()函数解密过程
2012/12/25 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
python 调用有道api接口的方法
2019/01/03 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
音乐教学反思
2014/02/02 职场文书
舞蹈专业求职信
2014/06/13 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
解除施工合同协议书
2014/10/17 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis