Openpyxl库使用小节

Openpyxl库可以用来对excel文档进行一系列操作

一、工作薄操作

1.创建工作簿(路径,名称,当前路径保存,其他路径另存)

先将Workbook()类实例化,然后保存

import openpyxl
filespace =r"C:\\Users\\zhangxijiangyayaya\\Desktop\\issue list.xlsx"
#新建工作簿
workbook = openpyxl.Workbook()
#调用了Workbook类(首字母要大写),此处根据类创建实例,即实例化。
workbook.save(filespace)
#一定要有保存,才会保存到硬盘,保存时用预先定义好的地址和名称,很方便。如果说需要另存一个文件,只需要写另一个地址重复调用这个save属性即可

2.打开工作簿(打开哪个地址的哪个文件哪个sheet)

openpyxl.load_workbook()

workbook = openpyxl.load_workbook(filespace)
#打开工作表sheet,用Workbook类的active属性可以默认的打开第一个sheet
sheet = workbook.active
#或者用Workbook类的“工作簿["工作表名"]”方法通过切片方式打开特定的工作表sheet= workbook["Sheet1"]

二、工作表操作

1.创建工作表

create_sheet()

#此处默认是把新工作表加入到最后面,如果想要加到最前面可以定义index参数为0,即workbook.create_sheet("new sheet",0)
workbook.create_sheet("new sheet")
workbook.save(filespace)
#记住操作的最后一定要保存文件

2.删除工作表

remove()

workbook.create_sheet("new sheet",0)
workbook.remove("new sheet")
#这段代码会报错,因为remove方法的参数必须是对象,下面段因为传入了对象参数,就不会报错
newsheet = workbook.create_sheet("new sheet",0)
workbook.save(filespace)
workbook.remove(newsheet)
workbook.save(filespace)

3.复制工作表

copy_worksheet()

newsheet = workbook.create_sheet("new sheet",0)
workbook.save(filespace)
newsheetcopy = workbook.copy_worksheet(newsheet)
workbook.save(filespace)
#也是传入对象参数

4.工作表重命名

title属性

newsheet.title ="新建测试"

5.遍历所有工作表

worksheets

allsheetlists = workbook.worksheets
print(allsheetlists)
#得到的是一个列表(都是sheet对象)

三、单元格操作

1.获取一个单元格的值

工作表["单元格序号"]
工作表.cell(row ,column)
单元格对象.value得到单元格的值

import openpyxl
filespace =r"C:\\Users\\zhangxijiangyayaya\\Desktop\\issue list.xlsx"
workbook = openpyxl.load_workbook(filespace)
sheet = workbook.active
cellA1 = sheet["A1"]#得到A1单元格对象
cellA2 = sheet.cell(row=2,column=1)#得到A2单元格对象
print(cellA1.value)#单元格的值:单元格对象.value
print(cellA2.value)

2.获取一个特定区域单元格的值

工作表对象["行列索引(同excel的框选)"]

cellA1C10 = sheet["A1:C10"]
#如果是A:C代表A列到C列,如果是1:10代表1行到10行
print(type(cellA1C10))#通过打印属性的值得知cellA1C10是一个元组
print(cellA1C10)#打印此元组发现,每一行为一组
for rows in  cellA1C10:
    for columns in rows:
        print(columns.value)#逐行逐列打印单元格内的值
print(cellA1C10[0][0].value)#索引特定单元格的值

设定索引范围

#这是按行索引,也可以按列索引,只要修改为sheet.iter_cols
effectiverange = sheet.iter_rows(min_row=0,max_row=10,min_col=0,max_col=3)
for rows in effectiverange:
    for columns in rows:
        print(columns.value)#逐行逐列打印单元格内的值

2.获取每一行,每一列

工作表对象.rows:这是个生成器,可以生成每一行的对象,每一行又由一个tuple包裹。
工作表对象.columns:和行类似
工作表对象.values :也是生成器,是所有工作表中所有的数据值
另外对于生成器,多说一句,生成器仅仅保存了一套生成数值的算法,并且没有让这个算法现在就开始执行,而是我什么时候调它,它什么时候开始计算一个新的值,并给你返回
参考https://www.cnblogs.com/liangmingshen/p/9706181.html

print(sheet.values)
print(sheet.columns)
print(sheet.rows)
#用sheet.values生成器,遍历所有的值
for rows in sheet.values:
    for column in rows:
        print(column)
#用sheet.rows生成器,遍历所有的值
for rows in sheet.rows:
    for column in rows:
        print(column.value)
#用list方法,将生成器?和元组转换成list,从而方便索引
alldata= list(sheet.values)
print(alldata)
print(alldata[0])#第一行
print(alldata[0:2])#第一行到第二行
print(alldata[0][0])#第一行第一列

3.列字母和数字之间的转换

#根据列的数字返回字母
print(get_column_letter(2))  # B
#根据字母返回列的数字
print(column_index_from_string('D'))  # 4
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,135评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,317评论 3 397
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,596评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,481评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,492评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,153评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,737评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,657评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,193评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,276评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,420评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,093评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,783评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,262评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,787评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,427评论 2 359

推荐阅读更多精彩内容