一、python操作excel,python操作excel使用xlrd、xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的。这几个模块使用pip安装即可,下面是这几个模块的使用。

二、xlwt模块,xlwt模块用来写一个新的Excel。

import xlwt
title = ['姓名','年龄','性别','分数']
stus = [['mary1',,'女',89.9],['mary2',,'女',89.9],['mary3',,'女',89.9],['mary4',,'女',89.9]]
book = xlwt.Workbook() #新建一个excel对象
sheet = book.add_sheet('stu') #添加一个名为stu的sheet页
for i in range(len(title)): #循环title
sheet.write(,i,title[i]) #将title中元素写入,作为表头
row=
for i in stus:
col =
for j in i:
sheet.write(row,col,j)
col+=
row+=
book.save('stu.xls')

 三、导出数据库某个表中的数据到excel中

1.首先介绍函数enumerate([list1,list2,list3])的作用,这个函数在循环的时候可以直接获取到下标和值

来看看下面的例子就明白了

list = ['id','name','sex','addr','phone','score','gold']
for index ,value in enumerate(list):
print(index,value)

输出list的下标和元素值,输出结果如下

 id
name
sex
addr
phone
score
gold

写一个通用的函数,从数据库中导出某个表的所有数据,只要你传入一个表名,就能把所有的数据导入出来,字段名是excel的表头

1、要动态获取到表的字段 cur.description能获取到表的字段

fileds = [ filed[0] for filed in cur.description ]

2、获取数据了 select * from "%s" % table_name

3、循环写入excel

import xlwt
def export_excel(table_name):
host, user, passwd, db = '118.24.3.40', 'jxz', '123456', 'jxz'
coon = pymysql.connect(host=host,user=user,passwd=passwd,db=db,port=3306,charset='utf8')
cur = coon.cursor() #建立游标,可以指定游标类型
sql = 'select * from %s'% table_name
cur.execute(sql)
fields = [field[0] for field in cur.description] #获取数据库表字段,存入列表fields中
all_data = cur.fetchall() #获取所有数据
book = xlwt.Workbook()
sheet = book.add_sheet('sheet1')
for col ,field in enumerate(fields): #循环写表头
sheet.write(0,col,field)
row =1 #从第一行开始写数据
for data in all_data:#all_data存的是所有数据,数据库中每一行数据是all_data中的一个元素,也就是循环数据库表中的每一行数据
for col,field in enumerate(data): #将每一行数据写入到excel中的某一行
sheet.write(row,col,field)
row+=1 #每写完一行,行数加1
book.save('%s.xls'%table_name)

四、读取excel中内容

import xlrd
book = xlrd.open_workbook('app_student.xls')#先用xlrd模块,打开一个excel
sheet = book.sheet_by_index()#根据索引获取sheet页
sheet = book.sheet_by_name('info')#根据sheet页名称获取sheet页
print(sheet.cell(,).value)#指定sheet页里的行和列获取数据
print(sheet.cell(,).value)#指定sheet页里的行和列获取数据
print(sheet.row_values())#获取到第1行的数据
print(sheet.row_values())#获取到第2行的数据
print(sheet.nrows)#获取excel中总共有多少行数据
print(sheet.ncols)#获取excel中总共有多少列
print(sheet.col_values())#获取第1列数据
for rownum in range(sheet.nrows):
print(sheet.row_values(rownum)) #取每行的数据

五、修改excel中内容

import xlrd
from xlutils import copy
book = xlrd.open_workbook('app_student.xls')#先用xlrd模块,打开一个excel
new_book = copy.copy(book)#通过xlutils这个模块里面copy方法,复制一份excel
sheet = new_book.get_sheet()#获取sheet页
lis = ['编号','名字','性别','年龄','地址','班级','手机号','金币']
for clo,filed in enumerate(lis): #获取list的下标和值,循环写入
sheet.write(,clo,filed)
new_book.save('app_student.xls')

python学习笔记(八)python操作Excel的更多相关文章

  1. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...

  2. python 学习笔记八 进程和线程 (进阶篇)

    什么是线程(thread)? 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执 ...

  3. Python学习笔记 - day12 - Python操作NoSQL

    NoSQL(非关系型数据库) NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称.用于超大规模数据的存储.(例如 ...

  4. Python学习笔记_Mysql数据库、Excel

    一.操作mysql数据库 import pymysql # 1.连上数据库:账号,密码,ip,端口号,数据库 # 2.建立游标(去数据库拿东西的工人) # 3.执行sql # 4.获取结果 # 5.关 ...

  5. python 学习笔记 9 -- Python强大的自省简析

    1. 什么是自省? 自省就是自我评价.自我反省.自我批评.自我调控和自我教育,是孔子提出的一种自我道德修养的方法.他说:“见贤思齐焉,见不贤而内自省也.”(<论语·里仁>)当然,我们今天不 ...

  6. python学习笔记(一):python简介和入门

    最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型 ...

  7. python学习笔记(python介绍)

    为什么要学python? python和shell的比较,和PHP.和JAVA比较 运维开发只是用到python的很小一部分 python在一些知名公司的应用: 谷歌:python的创始人原来在谷歌工 ...

  8. python学习笔记(python简史)

    一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum) 目前python主要应用领域: ·云计算 ·WEB开发 ·科学运算.人工智能 ·系统运维 ·金融:量化交 ...

  9. python学习笔记:python字符串

    二.python字符串操作符 1. 对象标准类型操作符 Python对象的标准类型操作符一共就三种:对象值的比较.对象身份的比较.布尔类型.其中对象值的比较主要是大于.小于.不等于等的数学比较符:对象 ...

  10. python 学习笔记一——Python安装和IDLE使用

    好吧,一直准备学点啥,前些日子也下好了一些python电子书,但之后又没影了.年龄大了,就是不爱学习了.那就现在开始吧. 安装python 3 Mac OS X会预装python 2,Linux的大多 ...

随机推荐

  1. 【BZOJ】1644: [Usaco2007 Oct]Obstacle Course 障碍训练课(bfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1644 这和原来一题用dp来做的bfs很像啊orz.. 我们设f[i][j][k]代表i,j这个点之前 ...

  2. 学习:100个高质量Java开发者博客

    谷歌关键字搜索:100个高质量Java开发者博客. Java开发牛人十大必备网站.

  3. 关于Java中的HashMap的深浅拷贝的测试与几点思考

    0.前言 工作忙起来后,许久不看算法,竟然DFA敏感词算法都要看好一阵才能理解...真是和三阶魔方还原手法一样,田园将芜,非常可惜啊. 在DFA算法中,第一步是需要理解它的数据结构,在此基础上,涉及到 ...

  4. [转]ODBC编程指南

    DM4 ODBC编程指南本章结合DM4数据库的特点,比较全面系统的介绍ODBC的基本概念以及DM4 ODBC DRIVER的使用方法,以便用户更好地使用DM4 ODBC编写应用程序.ODBC提供给你访 ...

  5. HTML 标签 参考手册

    按功能类别排列 基础 标签 描述 <!DOCTYPE>  定义文档类型. <html> 定义 HTML 文档. <title> 定义文档的标题. <body& ...

  6. 剑指 offer set 28 实现 Singleton 模式

    singleton 模式又称单例模式, 它能够保证只有一个实例. 在多线程环境中, 需要小心设计, 防止两个线程同时创建两个实例. 解法 1. 能在多线程中工作但效率不高 public sealed ...

  7. 工作中php处理HTTP请求的缺陷总结

    之前遇到过php在处理一部分业务的时候总是感觉有短板,有些东西总是不能随人心意.比如执行时间问题,一个进程需要读取多条数据放入数组循环执行处理流程,就会很慢,容易超时,这个超时问题 可以用php设置s ...

  8. 下载Qt安装包

    http://download.qt.io/archive/qt/ 找到下载页面,选择View All Downloads,找你需要的版本

  9. ios 将图片做成圆形

    UIImageView * imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"oiuyfdsa.png ...

  10. 160321、ORACLE分页查询SQL语法——最高效的分页

    --1:无ORDER BY排序的写法.(效率最高) --(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT *   FROM (SELE ...