python 读取excel文件生成sql文件实例详解


Posted in Python onMay 12, 2017

python 读取excel文件生成sql文件实例详解

学了python这么久,总算是在工作中用到一次。这次是为了从excel文件中读取数据然后写入到数据库中。这个逻辑用java来写的话就太重了,所以这次考虑通过python脚本来实现。

在此之前需要给python添加一个xlrd模块,这个模块是专门用来操作excel文件的。

在mac中可以通过easy_install xlrd命令实现自动安装模块

import xdrlib ,sys
import xlrd
def open_excel(file= a.xlsx'):
  try:
    data = xlrd.open_workbook(file)#打开excel文件
    return data
  except Exception,e:
    print str(e)

def excel_table_bycol(file='a.xlsx',colindex=[0],table_name='Sheet1'):
  data = open_excel(file)
  table = data.sheet_by_name(table_name)#获取excel里面的某一页
  nrows = table.nrows#获取行数
  colnames = table.row_values(0)#获取第一行的值,作为key来使用,对于不同的excel文件可以进行调整
  list = []
  #(1,nrows)表示取第一行以后的行,因为第一行往往是表头
  for rownum in range(1,nrows):
     row = table.row_values(rownum)
     if row:
       app = {}
       for i in colindex:
          app[str(colnames[i]).encode("utf-8")] = str(row[i]).encode("utf-8")#将数据填入一个字典中,同时对数据进行utf-8转码,因为有些数据是unicode编码的
       list.append(app)#将字典加入列表中去
  return list
def main():
  #colindex是一个数组,用来选择读取哪一列,因为往往excel中的一小部分才是我们需要的
  tables = excel_table_bycol(colindex=[1,4],table_name=u'areaCode')
  file = open('channel_area_code.sql','w')#创建sql文件,并开启写模式
  for row in tables:
    if row['area_code'] != '':
        file.write("update table_name set para1='%s' where para2='%s';\n"%(row['para1'],row['para2']))#往文件里写入sql语句
if __name__=="__main__":
  main()

这并非是一个通用的python脚本,还是需要根据excel文件的格式作出一些调整,但是代码并不复杂,开发速度也很快,比以前用java是轻松多了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
使用基于Python的Tornado框架的HTTP客户端的教程
Apr 24 Python
Python实例一个类背后发生了什么
Feb 09 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
python中的json总结
Oct 11 Python
python学生管理系统开发
Jan 30 Python
python print出共轭复数的方法详解
Jun 25 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
Python测试线程应用程序过程解析
Dec 31 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
python实现无边框进度条的实例代码
Dec 30 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 Python
Python实现读取并保存文件的类
May 11 #Python
Python使用defaultdict读取文件各列的方法
May 11 #Python
python中nan与inf转为特定数字方法示例
May 11 #Python
Python和C/C++交互的几种方法总结
May 11 #Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 #Python
详解Python读取配置文件模块ConfigParser
May 11 #Python
python如何获取服务器硬件信息
May 11 #Python
You might like
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
八大排序算法的Python实现
2021/01/28 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
微信跳一跳游戏python脚本
2020/04/01 Python
pymysql的简单封装代码实例
2020/01/08 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
药学专业毕业生求职信
2013/10/20 职场文书
小学家长会邀请函
2014/01/23 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
团员个人年度总结
2015/02/26 职场文书
2015年公司工作总结
2015/04/25 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书