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的id()函数介绍
Feb 10 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
Python退火算法在高次方程的应用
Jul 26 Python
Python import与from import使用及区别介绍
Sep 06 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
解决paramiko执行命令超时的问题
Apr 16 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 Python
python 贪心算法的实现
Sep 18 Python
python-图片流传输的思路及示例(url转换二维码)
Dec 21 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猴子选大王问题解决方法
2015/05/12 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
js实现图片360度旋转
2017/01/22 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
Python实现微信机器人的方法
2019/09/06 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
经典的班主任推荐信
2013/10/28 职场文书
计算机求职信
2013/12/01 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
工程承包协议书
2014/10/20 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
JavaScript 数组去重详解
2021/09/15 Javascript