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的净值数据接口调用示例分享
Mar 15 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
深入分析python中整型不会溢出问题
Jun 18 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
Oct 28 Python
python 有效的括号的实现代码示例
Nov 11 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
python设置环境变量的作用整理
Feb 17 Python
python实现批量命名照片
Jun 18 Python
Python应用实现双指数函数及拟合代码实例
Jun 19 Python
如何让python的运行速度得到提升
Jul 08 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 Python
基于python调用jenkins-cli实现快速发布
Aug 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 Hash函数,增强密码安全
2011/02/25 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
jQuery.Callbacks()回调函数队列用法详解
2016/06/14 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
python实现的各种排序算法代码
2013/03/04 Python
Django中对数据查询结果进行排序的方法
2015/07/17 Python
python 队列详解及实例代码
2016/10/18 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
自荐书范文
2013/12/08 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
故意杀人案辩护词
2015/05/21 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
车位出租协议书范本
2016/03/19 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书