from openpyxl import load_workbook
wb = load_workbook(filename=路径+文件名称)
ws = wb['sheet名称']
from openpyxl import Workbook
wb = Workbook() # 新建一个工作簿
ws = wb.active # 获取当前活动的工作表,默认情况下,活动工作表是Excel文件中的第一个工作表,也可以通
# 过wb.active = index来设置活动工作表的索引。
# 如何知道现在是编辑的那一个sheet呢!
print(ws.title)
new_worksheet = wb.create_sheet() # 新建一个sheet
new_worksheet.title = 'sheetname' # 给新的sheet一个名字
# 或者
new_worksheet = wb.create_sheet( 'sheetname',n) #n表示sheet在工作簿中是位置,默认从0开始
排序的方法有两种:
move_sheet(title,n)
# title :sheet名称
# n:负数表示向左移动,正数表示向右移动,数字表示移动几个位置
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = 'sheet1'
new_worksheet_summary = wb.create_sheet('sheet2',2)
# new_worksheet_summary.title = 'summary'
PN = wb.create_sheet('sheet3',1)
Project = wb.create_sheet()
Project.title = 'sheet4'
sort_lst = wb.sheetnames
print(sort_lst)
# output
#['sheet1', 'sheet3', 'sheet2', 'sheet4']
desired_order = ['sheet4','sheet3','sheet2','sheet1'] # 以你期望的顺序列出工作表的名称
# 根据给定的顺序,重新排列工作表
for idx, sheet_name in enumerate(desired_order, 1):
wb.move_sheet(sheet_name, idx)
sort_lst = wb.sheetnames
print(sort_lst)
# output
# ['sheet4', 'sheet3', 'sheet2', 'sheet1']
from openpyxl import Workbook
from openpyxl import load_workbook
wb = load_workbook(r'.\test.xlsx')
sort_lst = wb.sheetnames
print(sort_lst)
# output
#['sheet4', 'sheet3', 'sheet2', 'sheet1']
desired_order = ['sheet2','sheet1','sheet4','sheet3'] # 以你期望的顺序列出工作表的名称
# 根据给定的顺序,重新排列工作表
for idx, sheet_name in enumerate(desired_order, 1):
wb.move_sheet(sheet_name, idx)
sort_lst = wb.sheetnames
print(sort_lst)
# output
# ['sheet2', 'sheet1', 'sheet4', 'sheet3']
wb.save(r'.\test2.xlsx')
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = 'sheet1'
new_worksheet_summary = wb.create_sheet('sheet2',2)
# new_worksheet_summary.title = 'summary'
PN = wb.create_sheet('sheet3',1)
Project = wb.create_sheet()
Project.title = 'sheet4'
sort_lst = wb.sheetnames
sort_lst
# 方法一:
wb.remove(wb["sheet名称"])
# 方法二:
del wb['删sheet名称']
实例:
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = 'sheet1'
new_worksheet_summary = wb.create_sheet('sheet2',2)
PN = wb.create_sheet('sheet3',1)
Project = wb.create_sheet()
Project.title = 'sheet4'
sort_lst = wb.sheetnames
print(sort_lst)
#output
#['sheet1', 'sheet3', 'sheet2', 'sheet4']
# 删除sheet
del wb['sheet4']
print(wb.sheetnames)
#output
# ['sheet1', 'sheet3', 'sheet2']
wb.remove(wb['sheet3'])
print(wb.sheetnames)
#output
#['sheet1', 'sheet2']
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
new_worksheet = wb.create_sheet(title='sheet名称')
for row in ws.iter_rows(values_only=False, max_row=4):
for cell in row:
new_worksheet[cell.coordinate].value = cell.value
优点:
缺点:
new_worksheet = wb.copy_worksheet(ws)
优点:
缺点:
相同点:
总的来说,如果你需要灵活地选择性复制部分内容并且需要在复制过程中进行额外的处理,那么使用iter_rows和循环复制的方法可能更适合。但如果你只需要简单地复制整个工作表的内容,而不需要进行额外的处理,那么使用copy_worksheet方法会更加简单和方便。
ws.sheet_state = None
# None 可以被替换为:
# "hidden":隐藏
# "visible":显示
# "veryHidden":深度隐藏
veryHidden称它为深度隐藏,正常来说我们隐藏一个工作表后,鼠标右击工作表会弹出一个菜单,里面会有一个“取消隐藏”的选项,你可以选中想要取消隐藏的工作表然后点确定,该工作表就会重新出现。但当你设置成veryHidden,该工作表就不会出现在"取消隐藏"的框里。