一、读excel: xlrd-----只能读、不能写

import xlrd
book=xlrd.open_workbook(r'E:\BestTest\内容\名单.xlsx') #打开excel
sheet=book.sheet_by_index(0) #通过索引定位是第一个sheet页
sheet2=book.sheet_by_name("作业") #通过名字定位sheet
sheet.row_values(0) #获取某一行的数据,索引从0开始,0代表第一行 sheet.col_values(1) #获取某一列的数据,索引从0开始 sheet.cell(0,1).value #获取某个单元格的内容,索引从0开始,(行,列),(0,0)代表第1行,第1列 sheet.nrows #获取总行数
sheet.ncols #获取纵列数

二、写入excel:xlwt ——只能新建一个excel,往里面写内容,不是修改

book=xlwt.Workbook()
sheet=book.add_sheet('人员名单')
sheet.write(0,0,'姓名)
sheet.write(0,1,'学习形式')
sheet.write(1,0,'xiaohei') #(行,列,内容)
sheet.write(1,1,'现场')
#写完要保存:
book.save('E:\BestTest\上课内容\student.xls')
# 保存时,如果用的是微软的office,后缀要用.xls
# 如果是wps,就用.xls .xlsx

练习:list中每个元素写进表格中

方法一:

list=[
[1,'han',''],
[2, 'xiaoming', ''],
[3, 'xiaohei2', ''],
[4, '小白', '']
]
row=1 #定义行号,空出表头,从第二行,第一列开始写
for row_data in list:
col=0
for col_data in row_data:
sheet.write(row,col,col_data)
col+=1
row+=1
book.save('test.xls')

方法二:使用枚举函数:enumerate()

for row,row_data in enumerate(list,1)   #取list中下标和元素,下标定义初始索引是1
print(row,row_data)
for col,col_data in enumerate(row_data) #不传索引初始值,默认从0开始
print(col,col_data)
sheet.write(row,col,col_data)
book.save('test1.xls')

三、 修改excel

from xlutils import copy
import xlrd #两个模块配合才能修改
#操作步骤:
#1打开一个excel
#2复制一份
#3修改
book=xlrd.open_workbook('test.xls') #可写绝对路径
new_book=copy.copy(book)
print(dir(new_book)) #查看new_book可做的操作
sheet=new_book.get_sheet(0) #定位sheet页,xlutils中的定位sheet的方法不同于xlrd
title=['id','name','phone']
for col,t in enumerate(title):
sheet.write(0,col,t)
new_book.save('test.xls') #运行是文件不能是打开的状态,否则会报错

四、枚举函数:enumerate(list)

list=['xiaomingn','xiaohei','xiaobai']
num=1
for i in list:
print("编号:%s-->%s"%(num,i))
num+=1
#同下:
 #enumerate(list):循环时,同时循环下标和元素   enumerate(list,1)    #可指定从几开始,1,2,3,……如果不指定是默认从零开始,0,1,2,……
 for count,value in enumerate(list,1) print("编号:%s-->%s"%(count,value))

python之操作excel:xlrd、xlwt、xlutiles、枚举函数enumerate()的更多相关文章

  1. 【python】操作excel——xlrd xlwt xlutils

    from xlutils.copy import copy import xlrd # import xlutils #打开已存在的excel rb=xlrd.open_workbook('D:\\1 ...

  2. xpython操作excel之xlwt与xlrd

    xlwt与xlrd只能针对xls格式的excel进行操作!!!(openpyxl操作excel) xlwt写excel # pip install xlwt下载导入xlwt写xls格式的excel操作 ...

  3. Python读写操作Excel模块_xlrd_xlwt_xlutils

    Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...

  4. Python“文件操作”Excel篇(上)

    大家好,我们今天来一起探索一下用Python怎么操作Excel文件.与word文件的操作库python-docx类似,Python也有专门的库为Excel文件的操作提供支持,这些库包括xlrd.xlw ...

  5. Python Pandas操作Excel

    Python Pandas操作Excel 前情提要 ☟ 本章使用的 Python3.6 Pandas==0.25.3 项目中需要用到excel的文件字段太多 考虑到后续字段命名的变动以及中文/英文/日 ...

  6. 使用Python对Excel表格进行简单的读写操作(xlrd/xlwt)

    算是一个小技巧吧,只是进行一些简单的读写操作.让人不爽的是xlrd和xlwt是相对独立的,两个模块的对象不能通用,读写无法连贯操作,只能单独读.单独写,尚不知道如何解决. #①xlrd(读) #cod ...

  7. Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

  8. python操作excel xlrd和xlwt的使用

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

  9. python 3 操作 excel

    看到一篇很好的python读写excel方式的对比文章: 用Python读写Excel文件 关于其他版本的excel,可以通过他提供的链接教程进行学习. XlsxWriter: https://git ...

随机推荐

  1. Android控件大全(四)——CoordinatorLayout

    CoordinatorLayout 其实就是个高级的FrameLayout,用于协调子布局要使用该控件,需要再gradle中加入: compile 'com.android.support:desig ...

  2. 洛谷 - P2774 - 方格取数问题 - 二分图最大独立点集 - 最小割

    https://www.luogu.org/problemnew/show/P2774 把两个相邻的节点连边,这些边就是要方便最小割割断其他边存在的,容量无穷. 这种类似的问题的话,把二分图的一部分( ...

  3. 洛谷 - P2055 - 假期的宿舍 - 最大流

    https://www.luogu.org/problemnew/show/P2055 这是一个错误的示范. 一开始觉得就找一条路从外校同学连到本校同学然后最终从周末回家的同学流出,每个人睡后一个人的 ...

  4. POJ - 1661 - Help Jimmy - 简单dp

    http://poj.org/problem?id=1661 一般化处理,把一开始的落地和大地都视作平台,设计平台类的属性.dp的时候显然是从上往下dp的,而且要小心Jimmy不能够穿过平台,也就是从 ...

  5. HDU 6092:Rikka with Subset(dp)

    分析 很多个较小的数字可以随机组合成较大的数字,所以B数组从小到大开始遍历,除了空集,最小的那个存在的个数对应的数字必然是a数组中的数字. 每求出这一部分之后,更新后续的B序列. 分析完后,主要的难点 ...

  6. POJ3616【基础DP】

    //因为同一点结束的时间段会有多个,这里没考虑: //无限wa: const int N=1e6+7; int b[N]; LL a[N]; LL dp[N]; struct asd{ int s; ...

  7. Tasks 多核查找最大最小值问题

    先贴下代码 _Datas.ParallelForEach(arg_nDataStartIndex, arg_nDataCount, (data) => { dMax = dMax.Max(dat ...

  8. bzoj 3697: 采药人的路径【点分治】

    点分治,设当前处理的块的重心为rt,预处理出每个子树中f[v][0/1]表示组合出.没组合出一对值v的链数(从当前儿子出发的链),能组合出一对v值就是可以有一个休息点 然后对于rt,经过rt且合法的路 ...

  9. 进程动态拦截注入API HOOK

    最近工作中遇到一个问题,需要通过程序界面进行判断程序的运行状态,刚开始认为很简单,不就是一个窗体控件获取,获取Button的状态和Text.刚好去年干过该事情,就没太在意,就把优先级排到后面了,随着项 ...

  10. 区间dp实战练习

    题解报告:poj 2955 Brackets(括号匹配) Description We give the following inductive definition of a “regular br ...