Python办公

Python办公 知识量:2 - 22 - 78

1.3 操作工作表><

获取默认工作表- 1.3.1 -

可以通过以下代码获取一个已经存在的Excel工作簿中的默认工作表:

from openpyxl import load_workbook  
  
# 打开工作簿  
wb = load_workbook(filename="existing_workbook.xlsx")  
  
# 获取默认工作表  
ws = wb.active  
  
# 打印工作表的名称  
print(ws.title)

在这段代码中,首先从openpyxl库导入load_workbook函数。然后,调用这个函数,并传入要打开的工作簿的名称(包括路径),来创建一个Workbook对象。接着,通过调用Workbook对象的active属性,获取默认的工作表。最后,打印出工作表的名称。

工作表属性- 1.3.2 -

可以通过以下代码获取一个已经存在的工作表的属性,比如说表名、最大行数、最大列数、已用单元格范围等:

from openpyxl import load_workbook  
  
# 打开工作簿  
wb = load_workbook(filename="existing_workbook.xlsx")  
  
# 获取默认工作表  
ws = wb.active  
  
# 打印工作表属性  
print("工作表名称:", ws.title)  
print("最大行数:", ws.max_row)  
print("最大列数:", ws.max_column)  
print("已用单元格范围:", ws.used_range.min_row, ws.used_range.min_column, ws.used_range.max_row, ws.used_range.max_column)

在这段代码中,首先从openpyxl库导入load_workbook函数。然后,调用这个函数,并传入要打开的工作簿的名称(包括路径),来创建一个Workbook对象。接着,通过调用Workbook对象的active属性,获取默认的工作表。最后,打印出工作表的名称、最大行数、最大列数以及已用单元格范围。

需要注意的是,ws.used_range属性返回的是一个Range对象,表示工作表中已使用的单元格范围。通过访问该对象的min_row、min_column、max_row和max_column属性,可以获取已用单元格的范围信息。

获取工作表- 1.3.3 -

在openpyxl库中,如果一个工作簿中有多张工作表,可以使用get_sheet_names()方法或者sheetnames属性来查看所有的工作表名称。

以下是一个示例代码:

from openpyxl import load_workbook  
  
# 打开工作簿  
wb = load_workbook(filename="existing_workbook.xlsx")  
  
# 获取所有工作表名称  
sheet_names = wb.sheetnames  
  
# 打印工作表名称  
for sheet_name in sheet_names:  
    print(sheet_name)

在这段代码中,首先从openpyxl库导入load_workbook函数。然后,调用这个函数,并传入要打开的工作簿的名称(包括路径),来创建一个Workbook对象。接着,通过调用Workbook对象的sheetnames属性,获取所有工作表的名称。最后,遍历sheet_names列表,打印每个工作表的名称。

新建工作表- 1.3.4 -

在Python的openpyxl库中,当一个工作簿中的一张表不够用时,可以使用Workbook对象的create_sheet()方法来新建工作表。

create_sheet()方法需要两个参数:

  • 表名(sheetname):这是新工作表的名称。

  • 位置(index):这是新工作表在所有工作表中的位置,从0开始计数。如果不指定位置,新工作表将默认添加到最后。

调用create_sheet()方法后,会返回一个新的工作表对象,这是一个Worksheet对象,它代表了Excel中的一个工作表。

以下是一个简单的示例,演示如何使用create_sheet()方法新建工作表:

from openpyxl import Workbook  
  
# 创建一个新的工作簿  
wb = Workbook()  
  
# 创建一个名为"New Sheet"的新工作表,并将其放在位置0(即最前面)  
ws = wb.create_sheet("New Sheet", 0)  
  
# 打印新工作表的名称  
print(ws.title)  # 输出:New Sheet  
  
# 保存工作簿到文件  
wb.save("new_workbook.xlsx")

在这个示例中,首先创建了一个新的工作簿对象wb。然后,使用create_sheet()方法创建了一个名为"New Sheet"的新工作表,并将其放在位置0(最前面)。最后,保存工作簿到文件"new_workbook.xlsx"。

删除工作表- 1.3.5 -

在openpyxl库中,如果想根据表名直接删除工作表,可以使用Python的del关键字。

下面是一个示例代码,演示如何根据表名删除工作表:

from openpyxl import load_workbook  
  
# 打开工作簿  
wb = load_workbook(filename="existing_workbook.xlsx")  
  
# 获取要删除的工作表  
sheet_to_delete = wb["Sheet1"]  
  
# 使用del关键字删除工作表  
del sheet_to_delete  
  
# 保存工作簿到文件  
wb.save("new_workbook.xlsx")

在这个示例中,首先从openpyxl库导入load_workbook函数。然后,调用这个函数,并传入要打开的工作簿的名称(包括路径),来创建一个Workbook对象。接着,通过访问Workbook对象的属性(例如"Sheet1"),获取要删除的工作表。然后,使用del关键字删除该工作表。最后,保存工作簿到文件"new_workbook.xlsx"。

移动工作表- 1.3.6 -

使用openpyxl库中的move_sheet()方法,可以轻松地移动工作表。

move_sheet()方法需要两个参数:

  • 表名:这是要移动的工作表的名称。

  • 偏移量:这是要移动的次数。偏移量的数据类型是整型。正数表示往后移动,负数表示往前移动。

以下是一个简单的示例,演示如何使用move_sheet()方法移动工作表:

from openpyxl import Workbook  
  
# 创建一个新的工作簿  
wb = Workbook()  
  
# 创建一些工作表  
wb.create_sheet("Sheet1")  
wb.create_sheet("Sheet2")  
wb.create_sheet("Sheet3")  
  
# 打印原始的工作表顺序  
print("原始顺序:", [ws.title for ws in wb.worksheets])  
  
# 使用move_sheet()方法移动工作表  
wb.move_sheet("Sheet2", 1)  # 将"Sheet2"移动到第二个位置  
  
# 打印移动后的工作表顺序  
print("移动后的顺序:", [ws.title for ws in wb.worksheets])  
  
# 保存工作簿到文件  
wb.save("moved_workbook.xlsx")

在这个示例中,首先创建了一个新的工作簿,并创建了三个工作表。然后,使用move_sheet()方法将"Sheet2"移动到第二个位置。最后,保存工作簿到文件"moved_workbook.xlsx"。

注意:move_sheet()方法实际上是通过改变工作表的索引来实现移动的。因此,当移动一个工作表时,其他工作表的索引也会相应地调整。

复制工作表- 1.3.7 -

在openpyxl库中,copy_worksheet()方法用于复制工作表。这个方法需要一个参数,即要复制的工作表对象。以下是一个简单的示例,演示如何使用copy_worksheet()方法复制工作表:

from openpyxl import Workbook  
  
# 创建一个新的工作簿  
wb = Workbook()  
  
# 创建一些工作表  
wb.create_sheet("Sheet1")  
wb.create_sheet("Sheet2")  
wb.create_sheet("Sheet3")  
  
# 打印原始的工作表顺序  
print("原始顺序:", [ws.title for ws in wb.worksheets])  
  
# 使用move_sheet()方法移动工作表  
wb.move_sheet("Sheet2", 1)  # 将"Sheet2"移动到第二个位置  
  
# 打印移动后的工作表顺序  
print("移动后的顺序:", [ws.title for ws in wb.worksheets])  
  
# 保存工作簿到文件  
wb.save("moved_workbook.xlsx")

在这个示例中,首先创建了一个新的工作簿,并创建了两个工作表。然后,获取要复制的工作表"Sheet1",并使用copy_worksheet()方法将其复制到工作簿中。最后,打印复制后的工作表的名称,并保存工作簿到文件"copied_workbook.xlsx"。

注意:copy_worksheet()方法会创建一个新的工作表对象,并复制原始工作表的所有内容和格式。因此,复制后的工作表将与原始工作表完全相同。