| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
# 先挖个坑以后慢慢填,其实已经有大神用AutoHotkey帮我写了个脚本,用起来比表格自带目录还方便,这个纯属尝试 
 
# ++++++++++++++++++++++++++ 
 
# 为指定的工作簿添加工作表目录 
 
import xlwings as xw 
 
filepath = input('请输入:工作簿的完整路径\n') 
 
# 打开指定位置的工作簿 
wb = xw.Book(filepath) 
 
# 添加目录 
shtList = [] #空数组,用于存储工作簿所有工作表名称 
 
# 将工作簿所有工作表名称存储在shtList数组 
for shtNum in range(len(wb.sheets)): 
    shtList.append(str(wb.sheets[shtNum].name)) 
 
def directoryUpdate(): 
    for shtNum in range(len(wb.sheets) - 1): # 将工作簿所有工作表名称写入在“目录”工作表A列,由于上行代码添加一个新的工作表,导致工作表数量比原有数量多1,循环时需要减1才能确保shtList[shtNum]数组正确读取 
        # wb.sheets['目录'].range('A' + str(shtNum + 1)).value = shtList[shtNum] 
        wb.sheets['目录'].range('A' + str(shtNum + 1)).add_hyperlink(str('#' + shtList[shtNum] + '!A1'),shtList[shtNum],shtList[shtNum]) 
 
if '目录' in shtList: # 判断工作簿是否含有名称为“目录”的工作表 
    if (input('是否更新目录,请输入:(是/否)\n') == '是'): 
        wb.sheets['目录'].activate() # 焦点设为名称为“目录”的工作表 / 激活名称为“目录”的工作表为当前工作表 
        directoryUpdate() 
    else:  
        pass # 已含有名称为“目录”的工作表,并不执行任何操作 
else: # 未含有名称为“目录”的工作表 
    wb.sheets[0].activate() # 焦点设为第一个工作表 / 激活第一个工作表为当前工作表 
    wb.sheets.add('目录') # (默认在当前工作表前)添加名称为“目录”的工作表 
    directoryUpdate() 
 
# 另存为工作簿到指定位置,需要输入另存为的工作簿名称 
wb.save(input('请输入:工作簿另存为的完整路径\n')) 
 
# 关闭工作簿 
wb.close() 
 
# ———————————————————— 
 
# 参考: 
 
# xlwings中文文档 
# https://www.kancloud.cn/gnefnuy/xlwings-docs/1127450 
 
# python xlwings(一) 获取sheet名及个数 
# https://www.lizenghai.com/archives/4212.html 
 
# Python(Python+Qt)学习随笔:使用xlwings新建Execl文件和sheet的方法 
# https://www.cnblogs.com/LaoYuanPython/p/11931587.html 
 
# python实现判断数组是否包含指定元素的方法 
# https://www.jb51.net/article/69500.htm 
 
# python用xlwt,超链接到另一sheet,如何设置HYPERLINK 
# https://zhidao.baidu.com/question/500538554557937364.html |   
 
 
 
 |