Python读取excel指定列生成指定sql脚本的方法


Posted in Python onNovember 28, 2018

需求

最近公司干活,收到一个需求,说是让手动将数据库查出来的信息复制粘贴到excel中,在用excel中写好的公式将指定的两列数据用update这样的语句替换掉。

例如:

有个A库,其中有两个A.01和A.02字段,需要将这两个字段替换到下面的sql语句中,

update A set A.01 = 'excel第一列的值' where A.02 = 'excel第二列的值'

虽然excel中公式写好了,但是还需要将总计的那行复制粘贴到txt文档中,所以索性太麻烦,果断用Python写了一个自动化的脚本,虽然查出的数据还需要手动复制excel中,但是后续操作即可用脚本完成

读取excel指定列实现生成txt

废话不多说直接上代码:

#coding=utf-8
from openpyxl import load_workbook

#第一套servicebus.t_spis_servicebus_svcmain表的

#读取excel的数据
def read_excel():
  #打开一个workbook
  wb = load_workbook(filename='xxx.xlsx')
  #获取所有表格(worksheet)的名字
  sheets = wb.get_sheet_names()
  #遍历每一个sheet,并且拿到worksheet对象
  for i in range(len(sheets)):
    ws = wb.get_sheet_by_name(sheets[i])
    #声明list
    list_A_B = []
    #遍历A,B列的所有数据值,ws.max_row:获取最大行数
    for rowNum in range(1,ws.max_row+1):
      if (ws.cell(row=rowNum,column=1).value != None) and (ws.cell(row=rowNum,column=2).value != None):
        #ws.cell(row=rowNum,column=1).value:拿到指定列的行数据
        sql = 'update A set A.01=' + "'" + ws.cell(row=rowNum,column=1).value + "' " + 'where A.02=' + "'" + ws.cell(row=rowNum,column=2).value + "'"+ ';'
        list_A_B.append(sql)
    #print(list_A_B)
    text_save(list_A_B,'A.txt')
    print(str(sheets[i]) + '已完成!') 
  print('执行成功!')

#将读取的数据存入txt文档中
def text_save(content,filename,mode='a'):
  #打开文件
  file = open(filename,mode)
  for i in range(len(content)):
    number = content[i] + '\n'
    file.write(number)
  file.close()

if __name__ == '__main__':
  read_excel()

总结

其中用到的是openpyxl这个库,个人感觉非常好用,初步写的时候参考了一下国外大佬的一篇博客,附上链接:

点我去看大佬博客

以上这篇Python读取excel指定列生成指定sql脚本的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python安装以及IDE的配置教程
Apr 29 Python
Python单链表简单实现代码
Apr 27 Python
Python常见MongoDB数据库操作实例总结
Jul 24 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
python 多个参数不为空校验方法
Feb 14 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
python支持多线程的爬虫实例
Dec 21 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
Django自关联实现多级联动查询实例
May 19 Python
Tensorflow之MNIST CNN实现并保存、加载模型
Jun 17 Python
几款好用的python工具库(小结)
Oct 20 Python
Python从Excel中读取日期一列的方法
Nov 28 #Python
pandas使用apply多列生成一列数据的实例
Nov 28 #Python
pandas通过loc生成新的列方法
Nov 28 #Python
python去除拼音声调字母,替换为字母的方法
Nov 28 #Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 #Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 #Python
10分钟教你用Python实现微信自动回复功能
Nov 28 #Python
You might like
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
php生成zip压缩文件的方法详解
2013/06/09 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
Jquery中使用setInterval和setTimeout的方法
2013/04/08 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
详解js闭包
2014/09/02 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
jQuery实现弹幕特效
2019/11/29 jQuery
vue通过过滤器实现数据格式化
2020/07/20 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
python创建进程fork用法
2015/06/04 Python
详解Python sys.argv使用方法
2019/05/10 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
python 常见的反爬虫策略
2020/09/27 Python
python 自动识别并连接串口的实现
2021/01/19 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
学术诚信承诺书
2014/05/26 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs