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 BeautifulSoup库抓取58手机维修信息
Nov 21 Python
python提取页面内url列表的方法
May 25 Python
机器学习10大经典算法详解
Dec 07 Python
Django 浅谈根据配置生成SQL语句的问题
May 29 Python
Django项目中包含多个应用时对url的配置方法
May 30 Python
flask中的wtforms使用方法
Jul 21 Python
python GUI图形化编程wxpython的使用
Jul 19 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
Python2.x与3​​.x版本有哪些区别
Jul 09 Python
python爬取youtube视频的示例代码
Mar 03 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之PHP语法学习笔记1
2006/12/17 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
解决Layui 表格自适应高度的问题
2019/11/15 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
Python内置函数OCT详解
2016/11/09 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
tensorflow 查看梯度方式
2020/02/04 Python
python raise的基本使用
2020/09/10 Python
python空元组在all中返回结果详解
2020/12/15 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
新驾驶员个人自我评价
2014/01/03 职场文书
生日宴会答谢词
2014/01/09 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
英语读书笔记
2015/07/02 职场文书
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android