一.写Excel (导入xlwt模块)
需求:只要你传入一个表名,就能把所有的数据导入出来写入excel,字段名是excel的表头
分析:
  1、要动态获取到表的字段 cur.description能获取到表的字段
  fileds = [ filed[0] for filed in cur.description ] #列表生成式写法(其他章节有专门介绍)
  2、获取数据 select * from "%s" % table_name
  3、循环写入excel
代码及解析如下:
import pymysql,xlwt
def export_excel(table_name):
host, user, passwd, db = '118.24.3.xx', 'jxzx', '123456', 'jxzx'
coon = pymysql.connect(user=user, host=host, port=3306, passwd=passwd, db=db, charset='utf8')
cur = coon.cursor()
sql = 'select * from %s;'%table_name
cur.execute(sql) # 执行sql
fileds = [filed[0] for filed in cur.description] #所有的字段(表头)
all_data = cur.fetchall()
book = xlwt.Workbook() #创建excel文件
sheet = book.add_sheet('sheet1')
# col = 0
# for filed in fileds: #循环写表头
# sheet.write(0,col,filed)
# col+=1
for col,filed in enumerate(fileds): #循环写表头,其中enumerate方法可以自动使col自动+1循环写,等同于上面注释掉的四行内容写法
sheet.write(0,col,filed)
row = 1 #行数,从第一行开始,第0行已经被表头写入
# print(all_data) #查看所有的数据及格式,是二维数组
# ((1, '小黑马', '男', 28, '河南省济源市北海大道32号', '天蝎座', '18002531114', 617741546),
# (1, '小黑马', '男', 28, '河南省济源市北海大道32号', '天蝎座', '18002531114', 617741546),
for data in all_data: #二维数组,控制行
for col,filed in enumerate(data): #控制列
sheet.write(row,col,filed)
row+=1 #每次写完一行,行就加1
book.save('%s.xls'%table_name)
export_excel('app_student') 部分结果如下图:

二.读Excel    (导入xlrd模块)

book = xlrd.open_workbook('app_student.xls')  #打开excel
sheet = book.sheet_by_index(0) #根据顺序获取excel sheet页
sheet = book.sheet_by_name('sheet1') #根据名字获取excel sheet页
print(sheet.cell(0,0).value) #指定sheet页里面行和列获取数据
print(sheet.row_values(0)) #获取到第几行的内容,以列表形式打印。0行即表头
print(sheet.row_values(1)) #获取第一行的内容
print(sheet.nrows) #获取到excel里面总共有多少行
for i in range(sheet.nrows): #循环获取每行的数据
print(sheet.row_values(i))
print(sheet.ncols) #获取到excel里共有多少列
print(sheet.col_values(0)) #获取第几列的数据
结果如下:

三.修改Excel    (导入xlutils模块)

修改excel时,必须先读出来,复制一份后再修改内容。

import xlrd
from xlutils import copy #导入xlutils模块里的copy方法
book = xlrd.open_workbook('app_student.xls') #先用xlrd模块,打开一个excel
new_book = copy.copy(book) #通过xlutils这个模块里面copy方法,复制一份excel
sheet = new_book.get_sheet(0) #获取新copy的excel的sheet页,get_sheet()获取sheet页的方法
# sheet.write(0,0,'编号') #修改第0行第0列的表头为“编号”
# sheet.write(0,1,'名字') #修改第0行第1列的表头为“名字” lis = ['编号','名字','性别','年龄','地址','班级','手机号','金币'] #举例一个列表,实现循环修改每个字段
for col,filed in enumerate(lis): #循环修改表头list的字段
sheet.write(0,col,filed)
new_book.save('app_student.xls')
将表头修改为lis的内容,如下结果:



												

操作excel--xlwt/xlrd/xlutils模块的更多相关文章

  1. Python操作excel(xlrd和xlwt)

    Python操作excel表格有很多支持的库,例如:xlrd.xlwt.openpyxl.win32com,下面介绍使用xlrd.xlwt和xlutils模块这三个库不需要其他的支持,在任何操作系统上 ...

  2. 【转】python操作excel表格(xlrd/xlwt)

    [转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...

  3. 转载:python操作excel表格(xlrd/xlwt)

    python操作excel表格(xlrd/xlwt)   最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而 ...

  4. Linux安装Python xlrd、xlwt、xlutils模块

    一.安装setuptools: 可以先打开setuptools的python官网看看setuptools软件包如何安装: 1 > wget https://bitbucket.org/pypa/ ...

  5. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  6. 28.python操作excel表格(xlrd/xlwt)

    python读excel——xlrd 这个过程有几个比较麻烦的问题,比如读取日期.读合并单元格内容.下面先看看基本的操作: 首先读一个excel文件,有两个sheet,测试用第二个sheet,shee ...

  7. Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据

    在Python操作Excel 的模块有 xlrd.xlwt.xlutils等. xlrd:读取Excel文件数据 xlwt:写入Excel 数据,缺点是Excel格式无法复用,为了方便用户,写入的话, ...

  8. python之操作excel:xlrd、xlwt、xlutiles、枚举函数enumerate()

    一.读excel: xlrd-----只能读.不能写 import xlrd book=xlrd.open_workbook(r'E:\BestTest\内容\名单.xlsx') #打开excel s ...

  9. python操作excel xlwt (转)

    Python中xlrd和xlwt模块使用方法   阅读目录 安装 xlrd模块使用 xlwt模块 xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 回到顶部 安装 ? ...

随机推荐

  1. django中配置MySql

    1.配置字段 在setting文件中配置数据库字段:数据库需要提前手动创建好:语句(create database testdb charset "utf8";) DATABASE ...

  2. Chrome开发者工具详解(二)之使用断点调试代码下

    JS调试技巧 技巧一:格式化压缩代码 技巧二:快速跳转到某个断点的位置 右侧的Breakpoints会汇总你在JS文件所有打过的断点,点击跟checkbox同一行的会暂时取消这个断点,若是点击chec ...

  3. IDEA 不自动复制资源文件到编译目录 classes 的问题

    复制文件后建议编译项目

  4. 美国Science公布:全球125个最前沿的科学难题(图)

    文章来源:https://www.toutiao.com/i6637224168045675021 美国Science在庆祝创刊125周年之际,公布了125个最具挑战性的科学问题.这些前沿科学和研究方 ...

  5. 「版本升级」界面控件Kendo UI正式发布R2 2019|附下载

    通过70多个可自定义的UI组件,Kendo UI可以创建数据丰富的桌面.平板和移动Web应用程序.通过响应式的布局.强大的数据绑定.跨浏览器兼容性和即时使用的主题,Kendo UI将开发时间加快了50 ...

  6. 关于sword框架浏览器上方小图标的修改

    sword框架默认有一个document.ejs文件,可以导出html模板(找了很久没找到index.html,哈哈哈),里面有一行代码 这个href就是代表着浏览器上方图标的路径. 在public文 ...

  7. day02记

    一.Tomcat搭建 1.service和controller分别搭建独立的Tomcat且port不一致 2.部署项目选择带有exploded的 3.运行时应先启动service再启动controll ...

  8. AC自动机及其模板

    模板 #include<queue> #include<stdio.h> #include<string.h> using namespace std; ; ; ; ...

  9. CF1081G Mergesort Strikes Back

    题目大意: 给定\(n\),\(k\),\(mod\),求随机排列在\(k\)层归并排序下逆序对的期望. 题解 考虑这\(k\)层归并会把序列分成若干个块. 这些块内的顺序是原序列的相对顺序,我们要把 ...

  10. 图片上传预览转压缩并转base64详解(dShowImg64.js)

    hello,大家好,游戏开始了,欢迎大家收看这一期的讲解.本次的内容是图片的上传预览.最后发源码链接.废话不多说,先上图. 待上传图像 点击蓝色框内,pc可以选择文件,移动端选择拍照或选择图片进行上传 ...