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 相关文章推荐
wxPython事件驱动实例详解
Sep 28 Python
python连接MySQL数据库实例分析
May 12 Python
用Python抢过年的火车票附源码
Dec 07 Python
python访问抓取网页常用命令总结
Apr 11 Python
python 设置文件编码格式的实现方法
Dec 21 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
使用Django和Postgres进行全文搜索的实例代码
Feb 13 Python
python为什么要安装到c盘
Jul 20 Python
运行Python编写的程序方法实例
Oct 21 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 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中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
jQuery大于号(>)选择器的作用解释
2015/01/13 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
Python的gevent框架的入门教程
2015/04/29 Python
浅谈MySQL中的触发器
2015/05/05 Python
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
Python单例模式实例详解
2017/03/01 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
快速了解python leveldb
2018/01/18 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
Python 面向对象部分知识点小结
2020/03/09 Python
python程序需要编译吗
2020/06/19 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
高校毕业生登记表自我鉴定
2013/11/03 职场文书
生产班组长岗位职责
2014/01/05 职场文书
运动会广播稿60字
2014/01/15 职场文书
金融事务专业求职信
2014/04/25 职场文书
活动总结范文
2014/08/30 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
销售代理协议书
2014/09/30 职场文书
大学教师个人总结
2015/02/10 职场文书
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏