自学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写个脚本 帮助我核 ...
随机推荐
- windows系统下npm 全局安装路径问题
安装了nodejs之后,npm的路径默认一直都是appData,表示很讨厌,于是尝试修改在安装目录(D盘空间很大啊) 安装目录:D:\program files\nodejs 一.在nodejs下新建 ...
- html基础二
空标签 <br>用于分行 <hr>在 HTML 页面中创建水平线 “ctrl+/”用于在代码输入时注释 注释掉的内容将不会在浏览器上显示 这样方便在代码输入提高可读性 方便 ...
- objdump 分析
objdump -H 显示如下: 一般常用的是 objdump -x 显示文件头信息 objdump -d 反汇编代码段代码 objdump -D 反汇编所有代码 用法:objdump <选项& ...
- php session的理解与使用
session学习参考链接:1.http://www.w3cschool.cn/php_sessions.html:2.http://php.net/manual/zh/book.session.ph ...
- linux常用工具集合
网络: nm-tool 查看网络状态(有线/无线)
- java内存图解
最近突然对java的内存管理来了兴趣想,之前对java内存很模糊,通过这几天的学习现在将学习成果记录下来欢迎大家多多指教,为了方便我自己画了一个图
- css基础知识点
回顾 1.结构标记 <header></header> <nav></nav> <section></section> < ...
- android之animation
Android Animation一共有四种 Alpha: 淡入淡出效果 Scale: 缩放效果 Rotate: 旋转效果 Translate:移动效果 使用Tweened Animations的步 ...
- LeetCode 【31. Next Permutation】
Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...
- 命名空间System.Threading命名空间的同步锁 Monitor类
官方备注: Monitor类通过向单个线程授予对象所来控制对对象的访问.对象所提供限制访问代码块的能力.当一个线程拥有对象的锁时,其他任何线程都不能获取该锁.还可以使用Monitor来确保不会允许其他 ...