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获取网页上图片下载地址的方法
Mar 11 Python
python实现稀疏矩阵示例代码
Jun 09 Python
python实现rsa加密实例详解
Jul 19 Python
PyQt5每天必学之切换按钮
Aug 20 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
Python占用的内存优化教程
Jul 28 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
使用python检查yaml配置文件是否符合要求
Apr 09 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
python中format函数如何使用
Jun 22 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 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 base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
在Python的Django框架中包装视图函数
2015/07/20 Python
5种Python单例模式的实现方式
2016/01/14 Python
深入理解Python3 内置函数大全
2017/11/23 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
python集合是否可变总结
2019/06/20 Python
python下PyGame的下载与安装过程及遇到问题
2019/08/04 Python
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
即兴演讲稿
2014/01/04 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
讲座新闻稿
2015/07/18 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
python可视化之颜色映射详解
2021/09/15 Python