自学python3随笔--连接数据库和写EXCEL文件实现
近日在自学python3,选择python,是由于它命令比较简单,语法也不算复杂,对我来说,要实现的功能用100行语句就能够实现。另外,一个原因,它是脚本形式的,调试比较方便,对我这些有很长时间没有写程序的,拿起来就可以用。
在选择python版本上,看了不少帖子,2和3的语法等有不少不兼容的地方,可以说习惯了版本2的,到版本3还要花一些时间熟悉语法,所以我就直接学版本3的了,最终还是选择了最新版3.41,毕竟是新版,官网上也表示2.7是旧版,不再旧版的基础上升级的。
下载python3.41到官网:https://www.python.org上直接下载就可以了,链接:https://www.python.org/downloads/release/python-341/
上面有对应各操作系统的安装包,我下的是“Windows x86 MSI installer”, 对应的是windows 32位操作系统。
下载后双击即可安装,如果你没有特殊要求,如安装在那个文件夹等,直接全部“下一步”就可以完成,很简单。
怎样运行python自带的IDE环境网上很多资料,我就不罗嗦了。下面讲讲选择和安装第三方库的安装和使用:
我写程序要实现的功能之一是连接数据库SQL Server,读取某个表的数据,python默认安装好像没有支持数据库的功能,需要下载第三方支持库,在网找花了点时间,主要是有些网站被墙了,下不到最新版的库,旧版的又不一定不支持python3,下了pyodbc,pypyodbc,开始还不知道是不同的两个库,还以为是手误多打了两个字母,都安装了,发现pypyodbc使用很方便,建议安装pypyodbc这个。下载链接:https://pypi.python.org/pypi/pypyodbc
两者的性能差异不了解,我要实现的功能比较简单,只需连接SQL Server,读取几个数据,每天读取,写入表格。所以性能差别可以忽略,如果有大量数据流的,应自己试试读写数据库性能的差异,再作选择。
import pypyodbc
conn = pypyodbc.connect('''DRIVER={SQL Server};SERVER=1.1.1.1;DATABASE=dbname;UID=user;PWD=passwd''')
cur = conn.cursor()
SQL="SELECT * FROM abc where field=123 "
cur.execute(SQL)
data=cur.fetchone()
用一句命令就可以连上数据库,可不必编辑系统ODBC。
注入sql语句后就可以读取数据了。
下面是excel文件的数据写入: 这也是需要下载第三方库的支持,在网上找了好几个第三方库,xlsxwriter\xlrd\xlwt\openpyxl,都安装了,其中前面3个都不可以对现有的excel文件进行编辑,也就是不能在现有表格中填入数据并保存,经过测试才知道,只有openpyxl可以对现有文件进行编辑,在这走了不少弯路,是因为本人e文太滥了,文档没有仔细阅读,其实文档也不好找,很多内容在谷哥上面,网慢啊,大家都知道原因的,想看外面的代码真不容易。
回到正题,采用这种方式是由于我们需要在一张已编辑好的excel表格上填几个数据就可以打印,这样就不必对复杂的表格进行开发,拿来即可用,这也是懒惰的一种体现。第一次安装openpjxl时会出错,提示缺少一个组件,jdcal,先安装这个jdcal后再安装openpyxl就成功了,其实这个jdcal有什么用我不了解,不知道为什么不集成到openpyxl库内,就几十k的一个包,安装这些库的方法都很简单,把下载的第三方库解包后在该目录下运行 setup.py install 就可以了。
安装完以上第三方库以后就可以写代码了。这些第三方库都很好找,可很多都在谷哥上,不好连,大家给点耐性。
import openpyxl
workbook = openpyxl.load_workbook(filename = 'my.xlsx')
sheet1=workbook['sheet1']
sheet1['B2'].value='data'
这次就写到这里,初学者,有什么不对的,请多包涵。
自学python3随笔--连接数据库和写EXCEL文件实现的更多相关文章
- 使用Python xlwt写excel文件
如果需要使用Python写Excel文件,首先下载或者安装xlwt. pip install xlwt 下面的这些demo应该可以帮助开发者快速上手使用xlwt写Excel文件: 创建工作簿(work ...
- 在Delphi中通过OLE方式写Excel文件
报表的打印是每个项目都会遇到的问题.由于报表格式要求五花八门,往往又同时要求打印格式可方便调整.作为一种替代方法,可以将需要打印的报表导出到Excel/Word,打印交给Office去吧.由于Offi ...
- Python3 读、写Excel文件
首先,简单介绍一下EXECL中工作簿和工作表的区别: 工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET). 一个工作簿就是一个独立的文件 一个工作簿里面可以有1 ...
- python3 写excel文件 xlsxwriter模块
之前一直用这个传说中可以让python飞起来的xlwings模块来写入excel文件,今天发现xlsxwriter模块,发现这才是飞起来的feel!! 使用体验对比: xlwings:写入7000+单 ...
- Python小实验——读&写Excel文件内容
安装xlrd模块和xlwt模块 读取Excel文件了内容需要额外的模块-- \(xlrd\),在官网上可以找到下载:https://pypi.python.org/pypi/xlrd#download ...
- python读、写、修改、追写excel文件
三个工具包 python操作excel的三个工具包如下 xlrd: 对excel进行读相关操作 xlwt: 对excel进行写相关操作 xlutils: 对excel读写操作的整合 注意,只能操作.x ...
- Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现
以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中 ...
- JAVA读、写EXCEL文件
採用jxl.jar包,网上下载,百度一下到出都是.希望能够帮助到大家. 接下来直接贴代码: <span style="font-size:18px;"> public ...
- Python3.7 比较两个Excel文件指定列的值的异同,并将核对结果写入Excel中(含升级版本)
背景: 最近工作中需要核对客户的历史数据, 接近400个产品,需要核对的列有15列,行数有8000+行 肉眼核对简直要吐血 心想着反正在学python呢 人生苦短 何不用python写个脚本 帮助我核 ...
随机推荐
- Android studio 菜单介绍 3.1.文件(File)
文件(File) 3.1.1.New 1. Android Studio中的Project相当于Eclipse中的Workspace 3.1.5.Close Prject 关闭当前项目打开的窗口 2. ...
- Spring JdbcTemplate方法详解
JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修 ...
- CDN 学习笔记
目前常用的存储技术方案有:共享式存储.本地附加存储和分布式文件系统服务方式. 共享式存储:设备性能好,稳定和可靠性高,但投入资本较高,而采用分布文件系统方式可以基于廉价存储介质提供大容量.高性能高可靠 ...
- Xcode8更新CocoaPods报错解决办法
Apple发布了iPhone7同时也发布了xcode8,第一时间升级,并且用Xcode8集成cocoapods但是打开工程,会报一大堆错误解决这个问题 由于OSX的安全解决方案,所以默认路径不能安装, ...
- oracle 块的学习——有定义和执行部分的块
declare --定义变量 v_ename varchar2(5); begin --执行部分 select ename from emp where empno=&no; --在控制台显示 ...
- 当窗体获得焦点时禁用max快捷键
最近一段时间一直在MXS里用dotnet写界面...写的各种头晕眼花... 过程中遇到了 TextBox 控件输入时 与max快捷键冲突的问题. 解决办法是 用 MaxTextBox 控件替换,今天请 ...
- 模板方法模式(Template Method Pattern)
模板方法模式是一种基于继承的代码复用技术,定义一个操作中的算法的骨架,而将步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤. 模式中的角色 抽象类(Abstrac ...
- 怎么使用CDR中排列对象功能
通过将对象发送到其他对象的前面或者后面,可以更改图层或页面上对象的堆叠顺序,还可以将对象按堆叠顺序精确定位,并且可以反转多个对象的堆叠顺序.本教程将详解CorelDRAW中排列对象各按钮功能. 1. ...
- 原生js事件委托
var commontop = document.getElementById("commontop");commontop.onclick = function(ev){ v ...
- Perforce P4V,添加映射