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中if __name__ == '__main__'作用解析
Jun 29 Python
python实现杨辉三角思路
Jul 14 Python
Django csrf 两种方法设置form的实例
Feb 03 Python
Python进阶之@property动态属性的实现
Apr 01 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
Aug 09 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 Python
python面向对象 反射原理解析
Aug 12 Python
Python迷宫生成和迷宫破解算法实例
Dec 24 Python
Python实现队列的方法示例小结【数组,链表】
Feb 22 Python
python2 对excel表格操作完整示例
Feb 23 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
Feb 29 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
星际RPG字典
2020/03/04 星际争霸
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
php简单判断文本编码的方法
2015/07/30 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
JQuery开发的数独游戏代码
2010/10/29 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
javascript 判断当前浏览器版本并判断ie版本
2017/02/17 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
JavaScript new对象的四个过程实例浅析
2018/07/31 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
详细探究Python中的字典容器
2015/04/14 Python
Python常用知识点汇总
2016/05/08 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
python针对excel的操作技巧
2018/03/13 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
a标签下载链接的简单实现
2016/09/13 HTML / CSS
爱游人:Travelliker
2017/09/05 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
话题作文之自信作文
2019/11/15 职场文书