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基础教程之循环介绍
Aug 29 Python
使用pygame模块编写贪吃蛇的实例讲解
Feb 05 Python
python3爬取淘宝信息代码分析
Feb 10 Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 Python
3个用于数据科学的顶级Python库
Sep 29 Python
python查看模块,对象的函数方法
Oct 16 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
pandas进行时间数据的转换和计算时间差并提取年月日
Jul 06 Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
Django drf请求模块源码解析
Jun 08 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
杏林同学录(六)
2006/10/09 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
python生成ppt的方法
2018/06/07 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
python中对数据进行各种排序的方法
2019/07/02 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
python如何从文件读取数据及解析
2019/09/19 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
提高EJB性能都有哪些技巧
2012/03/25 面试题
KTV的创业计划书范文
2014/02/02 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers
使用Apache Camel表达REST服务的方法
2022/06/10 Servers