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中的特殊语法:filter、map、reduce、lambda介绍
Apr 14 Python
Django中几种重定向方法
Apr 28 Python
编写Python脚本来获取Google搜索结果的示例
May 04 Python
Django实现组合搜索的方法示例
Jan 23 Python
使用Django启动命令行及执行脚本的方法
May 29 Python
python中退出多层循环的方法
Nov 27 Python
在pycharm中显示python画的图方法
Aug 31 Python
python垃圾回收机制(GC)原理解析
Dec 30 Python
Python实现RabbitMQ6种消息模型的示例代码
Mar 30 Python
简单了解Django项目应用创建过程
Jul 06 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
如何在pycharm中安装第三方包
Oct 27 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 和 COM
2006/10/09 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php绘制一个扇形的方法
2015/01/24 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
js中判断控件是否存在
2010/08/25 Javascript
简单的js表单验证函数
2013/10/28 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
布同 统计英文单词的个数的python代码
2011/03/13 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
python如何调用字典的key
2020/05/25 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
一套Delphi的笔试题二
2013/05/11 面试题
信息管理与信息系统专业求职信
2014/06/21 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
2014公司年终工作总结
2014/12/19 职场文书
北京爱情故事观后感
2015/06/12 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android