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编写生成树状结构的文件目录的脚本的教程
May 04 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
python获取元素在数组中索引号的方法
Jul 15 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 Python
对django中foreignkey的简单使用详解
Jul 28 Python
如何给Python代码进行加密
Jan 10 Python
Pytorch之finetune使用详解
Jan 18 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
python-for x in range的用法(注意要点、细节)
May 10 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
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
Php-Redis安装测试笔记
2015/03/05 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
javascript工具库代码
2012/03/29 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
python多进程并发demo实例解析
2019/12/13 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
Python日志处理模块logging用法解析
2020/05/19 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
SQL Server笔试题
2012/01/10 面试题
Internet体系结构
2014/12/21 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
求职信模板怎么做
2014/01/26 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
2015年会计工作总结范文
2015/05/26 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js