用python实现Excel工作表目录功能
# 先挖个坑以后慢慢填,其实已经有大神用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.name))
def directoryUpdate():
for shtNum in range(len(wb.sheets) - 1): # 将工作簿所有工作表名称写入在“目录”工作表A列,由于上行代码添加一个新的工作表,导致工作表数量比原有数量多1,循环时需要减1才能确保shtList数组正确读取
# wb.sheets['目录'].range('A' + str(shtNum + 1)).value = shtList
wb.sheets['目录'].range('A' + str(shtNum + 1)).add_hyperlink(str('#' + shtList + '!A1'),shtList,shtList)
if '目录' in shtList: # 判断工作簿是否含有名称为“目录”的工作表
if (input('是否更新目录,请输入:(是/否)\n') == '是'):
wb.sheets['目录'].activate() # 焦点设为名称为“目录”的工作表 / 激活名称为“目录”的工作表为当前工作表
directoryUpdate()
else:
pass # 已含有名称为“目录”的工作表,并不执行任何操作
else: # 未含有名称为“目录”的工作表
wb.sheets.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
页:
[1]