python给多页excel工作表写跳转目录及回转链接

 1 from openpyxl import load_workbook
 2 # from openpyxl.drawing.text import Paragraph, RegularTextRun
 3 from openpyxl.worksheet.hyperlink import Hyperlink
 4 # from openpyxl.utils import get_column_letter
 5 
 6 # 打开现有的工作簿
 7 workbook = load_workbook('abc.xlsx')
 8 
 9 # 获取所有工作表的名称
10 sheet_names = workbook.sheetnames
11 
12 # 添加一个新的工作表,并将其移至开头
13 new_sheet = workbook.create_sheet('目录', 0)
14 
15 # 获取新工作表的位置信息
16 # new_sheet_index = workbook.sheetnames.index('New Worksheet') + 1
17 
18 # 在新增工作表中添加跳转到每个其他工作表的链接
19 for i, sheet_name in enumerate(sheet_names):
20     # 在新增工作表中插入链接
21     link_address = f"'{sheet_name}'!A1"  # 获取对应的链接地址,此处假设跳转到其他工作表的A1单元格
22     cell = new_sheet.cell(row=i+1, column=1)  # 获取对应的单元格
23     cell.value = f"跳转到 {sheet_name}"
24     cell.hyperlink = Hyperlink(ref=cell.coordinate, location=link_address)  # 设置跳转链接
25 
26     # 在其他工作表中添加跳转到新增工作表的链接
27     hyperlink_to_new_sheet = Hyperlink(ref=f"'{new_sheet.title}'!A{cell.row}", location=f"'{new_sheet.title}'!A{cell.row}")
28     
29     # 创建超链接文本
30     text = "返回总表"
31     
32     # # 创建文本段落
33     # run = RegularTextRun()
34     # run.text = text
35     
36     # 将超链接和文本添加到工作表中
37     worksheet = workbook[sheet_name]
38     max_column = worksheet.max_column
39     return_cell = worksheet.cell(row=1, column=max_column+1)
40     return_cell.value = text
41     return_cell.hyperlink = hyperlink_to_new_sheet
42 
43 # 保存工作簿
44 workbook.save('your_file.xlsx')

 

posted @ 2023-07-04 20:46  oceanbkywind  阅读(261)  评论(0编辑  收藏  举报