python操作excel

1.openpyxl简介

    openpyxl是一个开源项目,openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到其它库(如:xlrd、xlwt等),这是openpyxl比较其他模块的不足之处。openpyxl是一款比较综合的工具,不仅能够同时读取和修改Excel文档,而且可以对Excel文件内单元格进行详细设置,包括单元格样式等内容,甚至还支持图表插入、打印设置等内容,使用openpyxl可以读写xltm, xltx, xlsm, xlsx等类型的文件,且可以处理数据量较大的Excel文件,跨平台处理大量数据是其它模块没法相比的。因此,openpyxl成为处理Excel复杂问题的首选库函数。

2.环境准备

安装python  https://www.python.org/ 下载地址

安装openpyxl模块 使用命令 pip install openpyxl

(对于开发人员来说我们会在一些成熟的IDE(例如Pycharm,Visual Studio)中进行代码的编辑,但是由于本次培训只是简单的进行这方面技术的介绍,所以直接使用了自带的编辑器)

3.简单使用

    因为要使用openpyxl所以首先要引入模块:

>>> from openpyxl

    然后我们可以通过Workbook()函数建立一个工作簿对象,这个工作簿对象包含了excel文件里的所有信息,通过运行下列代码我们可以创建一个excel文件:

wb = openpyxl.Workbook()

wb.create_sheet("sheet1",0)

wb.create_sheet("sheet2",0)

wb.save("test.xlsx")

    通过函数的名称我们可以直观的明白它的作用,建表操作create_sheet(表名表的位置),保存操作save(文件名



    通过运行上述代码,我们获得了一个test.xlsx文件,因为我们在保存它的时候没有给它赋予太多的属性所以它只包含三张空表【sheet2,sheet1,sheet】,现在我们通过这个文件来进行读取excel信息的操作

wb = openpyxl.load_workbook("test.xlsx") #加载文件到对象

wb.sheetnames #文件中的所有表名

4.对Excel的各种写操作

sheet1 = wb['sheet1']

sheet1['A1']="i am sheet1"    #填写sheet1的A1单元格内容

sheet1['A1'].font=openpyxl.styles.Font(color="FF0000") #设置主体颜色

sheet1['A1'].font=openpyxl.styles.Font(color="FF0000",size=15,bold=True) #字体样式设置,还有其他属性可以查看Font对象

sheet1['A1'].fill=openpyxl.styles.PatternFill("solid",fgColor="00FF00")#设置背景颜色

    接下来我们我们进行一个排序操作,通过查看官方文档可以知道排序的函数为ws.auto_filter.add_sort_condition(区间,正逆序)

wb = openpyxl.load_workbook("test.xlsx") #加载文件到对象

sheet2 = wb['sheet2']

i = 1

while i<10 :

  sheet2["B"+str(i)] = i

  i+=1

sheet2.auto_filter.ref="B1:B10"

sheet2.auto_filter.add_sort_condition("B1:B10",descending=True)

sheet2.auto_filter.add_filter_column()

wb.save("test.xlsx")

通过上述操作会有逆序图标出现,但是实际并没有执行排序操作。这会将相关指令添加到文件中,但实际上不会过滤或排序,这是官方描述.(发现通过excel软件里数据里的按钮重新应用来使排序生效)。

5.对Excel的各种读操作

wb = openpyxl.load_workbook("test.xlsx") #加载文件到对象

sheet2 = wb['sheet2']

#读取B1:B10的值

cells=sheet2["B1":"B10"]

for cell in cells:

      print(cell[0].value)

sheet2.max_column #最大列数

sheet2.max_row #最大行数

sheet1["A1"].fill #背景颜色对象

sheet["A1"].font #字体对象

6.简单使用例子


将上述文件中字母的单元格背景置成颜色1,将,偶数的单元格背景置成颜色2,奇数的单元格背景置成颜色3

import openpyxl

letters="ABCDEF"

color1 = openpyxl.styles.PatternFill("solid", fgColor="ff0000")

color2 = openpyxl.styles.PatternFill("solid", fgColor="00ff00")

color3 = openpyxl.styles.PatternFill("solid", fgColor="0000ff")

wb = openpyxl.load_workbook("test2.xlsx")  # 加载文件到对象

sheet1 = wb['Sheet1']

for row in sheet1.rows:

      for cell in row:

              if str(cell.value) in letters:

            cell.fill = color1

        else:

            if cell.value % 2==0:

                                cell.fill = color2

                      else:

                              cell.fill = color3

wb.save("test3.xlsx")

完结

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

推荐阅读更多精彩内容