AI智能
改变未来

当Python遇上Excel


今天是年初七,大家快要上班了,来和Paradoxical一起学习一下如何用Python操作Excel吧~

Paradoxical在春节假期也没有闲着,继续学习着Python,其中学会用Python操作Excel就是最大的收获。

首先我们要安装openpyxl库,在命令行输入“pip install openpyxl”即可。接下来说一下3个比较关键的对象。

  1. 工作簿对象Workbook

    一个工作簿就是一个Excel文件,里面可以包含多个工作表。

  2. 工作表对象Worksheet

    一个工作表对象就是工作簿里的表,里面包含多个单元格。

  3. 单元格对象Cell

    单元格就是Excel存放数据的地方。

下面我们来学习一下openpyxl的用法。首先新建一个Excel文件,在里面写入一些测试用的数据。


打开工作簿文件


可以使用load_workbook()或者Workbook()打开一个已有的工作簿。

import openpyxl as xl

#方法1
wb = xl.load_workbook(\'test.xlsx\')

#方法2
wb2 = xl.Workbook(\'test.xlsx\')

工作表操作


工作簿的active属性或者get_active_sheet()可获取打开Excel表时看到的工作表。

wb.active

wb.get_active_sheet()

此外,还可以用get_sheet_by_name()根据工作表的名字获取工作表。

wb.get_sheet_by_name(\'Sheet1\')

创建工作表。

#默认以Sheet + 数字的形式创建一个工作表
wb.create_sheet()

#指定工作表的名字
wb.create_sheet(\'newSheet\')

#指定工作表的名字和位置
wb.create_sheet(\'newSheet\', 0)

查看和修改工作表的名字。

#该属性返回一个列表
wb.sheetnames

#也可以用迭代的方式查看
for sheet in wb:
    print(sheet.title)
    
#可以直接对工作表对象修改
wb.active.title = \'Sheet0\'

删除工作表。

#方法1
Sheet0 = wb.get_sheet_by_name(\'Sheet0\')
wb.remove(Sheet0)

#方法2
del wb[\'Sheet0\']

获取工作表最大行列数。

#最大行数
wb.active.max_row

#最大列数
wb.active.max_column

单元格操作


获取单个单元格。

#第一个参数是行,第二个参数是列
wb.active.cell(2, 1)

#通过单元格名字获取
wb.active[\'A1\']

获取多个单元格。

#这种方法冒号前需要区域左上角和右下角的单元格
wb.active[\'A1\': \'B2\']

#获取单列的单元格
wb.active[\'A\']

#获取多列的单元格
wb.active[\'A:C\']

#获取单行的单元格
wb.active[1]

#获取多行的单元格
wb.active[1:2]

获取和修改单元格的值。

#获取单元格的值
wb.active[\'A1\'].value

#修改单元格的值
wb.active[\'A1\'].value = 3

保存为文件。

#需要指定文件路径wb.save(\'test.xlsx\')

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 当Python遇上Excel