openpyxl库-对excel进行操作

前言:

当涉及到处理Excel文件时,openpyxl是Python中一个非常有用的库。它允许你读取、修改和创建Excel文件,提供了丰富的功能和灵活性。

以下是一些openpyxl库的主要功能和特点:

  • 读写操作:openpyxl可以读取和写入Excel文件,支持XLSX格式(Microsoft Excel 2007以上版本使用的默认文件格式)。你可以打开现有的Excel文件,读取和修改其中的数据,也可以创建新的Excel文件并添加数据。

  • 单元格操作:你可以使用openpyxl修改单元格的值、样式和格式,比如设置字体、颜色、边框、对齐等。它还支持合并和拆分单元格,设置单元格的数据验证,以及对数值、日期、时间等进行格式化。

  • 表格和工作表操作:openpyxl允许你创建、删除和重命名工作表,对工作表进行排序和隐藏,以及在工作表之间移动数据。你还可以创建数据透视表和图表,并保存为Excel文件。

  • 公式计算:openpyxl支持使用公式进行计算。你可以在单元格中设置公式,并自动计算结果。它还提供了一些内置函数和工具,用于处理公式、引用其他单元格等。

  • 图像插入:openpyxl允许在Excel文件中插入图像。你可以将图像文件添加到工作表中的单元格,调整大小和位置,并设置其他属性。

  • 协作功能:openpyxl提供了一些协作功能,使多个用户能够同时编辑同一个Excel文件。你可以锁定特定的单元格、保护工作表,并控制对文件的访问和修改权限。

load_workbook—加载Excel表

openpyxl.load_workbook(“”)

wb=openpyxl.load_workbook("数据.xlsx")
参数 类型 默认值 作用
filename 目录 要打开的文件路径或类文件对象
read_only bool false 是否只读,不可编辑
keep_vba bool 是否保留VBA内容(并不代表能够使用它)
data_only bool false 控制带有公式的单元格是否具有公式(默认值)或上次Excel读取工作表时存储的值
keep_links bool true 是否应该保留到外部工作簿的链接

wb.sheetnames
输出sheet表们的名称,或者可以使用for循环遍历输出

for sheet in wb:
    print(sheet.title)

wb.create_sheet(“”)—创建工作表

参数 类型 作用
title string 工作表的可选标题
index int 可选的插入工作表的位置

返回worksheet对象,只读模式不可用

wb.create_chartsheet(“”)—创建图表工作表

参数 类型 作用
title string 工作表名称
index int 指定索引位置

返回chartsheet对象,只读模式不可用

wb.index(worksheet)—索引工作表

参数:worksheet,要索引的工作表
返回:索引值

wb.copy_worksheet(worksheet)—复制工作表

参数:worksheet,要复制的工作表
返回:复制的工作表的副本
只读或只写模式无法使用

wb._add_sheet()—粘贴工作表

参数 类型 作用
worksheet 待粘贴工作表
index int 指定索引位置

返回none
函数作用:在工作簿内部指定索引位置增加一个内部工作表。只读模式不可调用。与copy_worksheet联用相当于粘贴。

wb.move_sheet()—移动工作表

参数 类型 作用
sheet
待移动工作表
offset int 偏移量

返回none
移动工作簿中指定工作表offset个偏移量

wb.remove()—删除工作表

参数:worksheet,待移除工作表
返回:none
从工作簿删除指定工作表

wb.close()—关闭工作_**簿 **_

如果工作簿文件打开,则关闭它。只影响只读和只写模式

wb.save(filename)—保存工作簿

保存工作簿到指定文件。只写模式下,只能调用一次;只读模式无法调用

获取sheet对象的两种方式

sheet4=wb.get_sheet_by_name("数据1")#不推荐使用,因为这个快被废除了
sheet5=wb['mySheet']#推荐使用的方法

wb.active—获取工作簿中活跃的一张工作表

active表示当前活跃的sheet,即第一张sheet

ws=wb.active
print(ws)#显示当前操作的sheet对象
print(ws['A1'])#单元格对象
print(ws['A1'].value)#A1的数据

对于单元格的操作

c=ws['A2']
print(c.row,c.column,c.value)#第几行,第几列,该单元格的值
print(c.coordinate)#当前的单元格

另外一种对单元格的操作

print(ws.cell(row=1,column=2))#第几行第几列
print(ws.cell(row=1,column=2).value)

行列操作

colA=ws['A']#获取列对象
print(colA[2].value)
col_range=ws['A:B']#对列的切片
row_range=ws[2:6]#对行的切片

for col in col_range:
    for cell in col:
        print(cell.value)

统计行数列数

print(ws.max_row,ws.max_column)#sheet的行数和列数

你可能感兴趣的:(Python,excel,python,自动化)