第三章、用xlwings模块管理工作表
3.1 选取工作表
通过Book对象的sheets属性可返回一个sheets对象
表达式.sheets[工作表索引或工作表名称]
import xlwings as xw
app = xw.App(visable=False, add_book=False) # 启动excel程序
workbook = app.books.open('./example.xlsx') # 打开指定工作薄
worksheets = wrokbook.sheets # 从指定工作薄中选取所有工作表
print(worksheets) # 输出选取的工作表
workbook.close() # 关闭工作薄
app.quit() # 退出excel程序
3.2 工作表的基本操作
3.2.1 name属性–获取或更改工作表的名称
# 获取工作薄中指定表的名称
import xlwings as wx
app = xw.App(visible=False, add_book=False)
worbook = app.books.open('./example.xlsx')
worksheet = workbook.sheets[1] # 选取工作薄中的第二个工作表
sheet_name = worksheet.name # 获取第二个工作表的名称
print(sheet_name) # 输出获取的名称
workbook.close() # 关闭工作薄
app.quit() # 退出excel程序
# 重命名工作表
import xlwings as xw
app = xw.App(visible=False, add_book=False)
worbook = app.books.open('./example.xlsx')
worksheet = workbook.sheets[1] # 选取工作薄中的第二个工作表
worksheet.name = 'test2' # 重命名第二个工作表的名称
workbook.save()
workbook.close() # 关闭工作薄
app.quit() # 退出excel程序
3.2.2 add()–插入空白工作表
表达式.sheets.add(name,before,after)
- name:指定需要插入的工作表名称,如有重名会报错
- before:为一个字符串或工作表对象,新插入的工作表将在这个工作表之前
- after: 为一个字符串或工作表对象,新插入的工作表将在这个工作表之后
before和after不可同时存在,若两个参数都不存在则在任意位置插入。
3.2.3 delete()函数–删除工作表
表达式.delete()
import xlwings as xw
app = xw.App(visible=False, add_book=False)
worbook = app.books.open('./example.xlsx')
worksheet = workbook.sheets['exmple']
worksheet.delete()
workbook.save()
workbook.close() # 关闭工作薄
app.quit()
3.2.4 clear_contents()–清楚工作表的内容
clear_contents 是 xlwings 库中的一个方法,用于清除指定单元格或范围的内容。这个方法可以应用于工作表对象(如 Sheet)和范围对象(如 Range)。
以下是使用 clear_contents 方法的示例代码:
import xlwings as xw
# 打开一个现有的 Excel 文件
book = xw.App.books.open('example.xlsx')
# 选择要操作的工作表
sheet = book.sheets['Sheet1']
# 清除 A1 单元格的内容
sheet.clear_contents()
# 保存并关闭工作簿
book.save()
book.close()
3.2.5 clear()–清楚工作表的内容和格式
clear() 是 xlwings 库中的一个方法,用于清除指定单元格或范围的内容和格式。
import xlwings as xw
# 打开一个现有的 Excel 文件
book = xw.App.books.open('example.xlsx')
# 选择要操作的工作表
sheet = book.sheets['Sheet1']
# 清除 A1 单元格的内容和格式
sheet.range('A1').clear()
# 或者清除 A1 到 C3 范围内的所有内容和格式
sheet.range('A1:C3').clear()
# 保存并关闭工作簿
book.save()
3.2.6 autofit()–自动调整工作表的行高和列宽
autofit() 是 xlwings 库中的一个方法,用于自动调整指定单元格或范围的列宽和行高。
import xlwings as xw
# 打开一个现有的 Excel 文件
book = xw.App.books.open('example.xlsx')
# 选择要操作的工作表
sheet = book.sheets['Sheet1']
# 自动调整列宽和行高
sheet.autofit()
# 保存并关闭工作簿
book.save()
book.close()
3.2.7 visible属性–隐藏或显示工作表
visible 是 xlwings 库中的一个属性,用于设置工作簿的可见性。当设置为 True 时,工作簿将在屏幕上显示;当设置为 False 时,工作簿将不会在屏幕上显示。
import xlwings as xw
# 打开一个现有的 Excel 文件
book = xw.App.books.open('example.xlsx')
# 设置工作簿为可见
book.app.visible = True
# 或者设置工作簿为不可见
book.app.visible = False
# 保存并关闭工作簿
book.save()
book.close()
3.2.8 copy函数–复制工作表
xlwings 库中的 copy() 函数可以用于复制一个工作表的内容到另一个位置。
表达式.copy(before,after,name)
- before:为一个字符串或工作表对象,新插入的工作表将在这个工作表之前
- after: 为一个字符串或工作表对象,新插入的工作表将在这个工作表之后
- name:代表复制工作表的新名字
- *before和after不能同时指定,如果同时省略则放在现有表的最后面
import xlwings as xw
# 打开一个现有的 Excel 文件
book = xw.App.books.open('example.xlsx')
# 选择要操作的工作簿
sheet_to_copy = book.sheets['Sheet1']
# 创建一个新的工作表作为目标位置
new_sheet = book.sheets.add('CopiedSheet')
# 复制工作表内容到新工作表
sheet_to_copy.copy(new_sheet)
# 保存并关闭工作簿
book.save()
book.close()