import os #导入os模块
import xlwings as xw #导入xlwings模块
file_path = 'e:/table/text' #给出要新增工作表的工作簿所在的文件夹路径
file_list = os.listdir(file_path) #列出文件夹下所有文件和子文件夹的名称
sheet_name = 'sheet_add' #给出要新增的工作表的名称
app = xw.App(visible=False,add_book=False)
for i in file_list:
if i.startswith('~$'):#判断是否有文件名以“~$”开头的文件
continue #如果有,则跳过这种类型的文件
file_paths = os.path.join(file_path,i) #构造需要新增工作表的工作簿的文件路径
workbook = app.books.open(file_paths) #根据路径打开需要新增工作表的工作簿
sheet_names = [j.name for j in workbook.sheets] #获取打开的工作簿中所有工作表的名称
if sheet_name not in sheet_names: #判断工作薄中是否不存在名为“sheet_add”的工作表
workbook.sheets.add(sheet_name) #如果不存在,则新增工作表“sheet_add”
workbook.save()
app.quit()
知识补充:
第9行代码中的continue语句在案例四的代码中也出现过,它只能与for语句或while语句搭配使用,功能是跳过当前循环的剩余语句,然后继续进行下一轮循环,其运行流程如下图所示。continue语句通常配合if 语句使用,如第8行和第9行代码。
import os #导入os模块
import xlwings as xw #导入xlwings模块
file_path = 'e:/table/text' #给出要新增工作表的工作簿所在的文件夹路径
file_list = os.listdir(file_path) #列出文件夹下所有文件和子文件夹的名称
sheet_name = 'sheet_delet' #给出要删除的工作表的名称
app = xw.App(visible=False,add_book=False)
for i in file_list:
if i.startswith('~$'):#判断是否有文件名以“~$”开头的文件
continue #如果有,则跳过这种类型的文件
file_paths = os.path.join(file_path,i) #构造需要新增工作表的工作簿的文件路径
workbook = app.books.open(file_paths) #根据路径打开需要新增工作表的工作簿
for j in workbook.sheets:
if j.name ==sheet_name: #判断工作簿中是否有名为“sheet_delete”的工作表
j.delete() #如果有,则删除该工作表
break
workbook.save()
app.quit()