excel批量添加超链接到各个sheet表单

一、利用excel的功能来实现:
第一步:定义名称管理器:“名称管理器”TQ设置:公式-》设置名称TQ 引用位置

=GET.WORKBOOK(1)

第二步:设置单元格为

=HYPERLINK("#"&(INDEX(TQ,ROW(D1)))&"!A1","打开链接")

其中D1是要设置超链接的单元格所在的位置。D1代表第一个sheet。如果要链接到第二个sheet那就用D2或者F2,h2
第三步:设置返回键

单击任意单元格,定义名称-》返回-》OK
放大招:
一行搞定:

=HYPERLINK(INDEX(TQ,ROW(Q1))&"!A1",MID(INDEX(TQ,ROW(Q1)),FIND("]",INDEX(TQ,ROW(Q1)))+1,999))

备注:
#获取sheet表单的的列表

=INDEX(TQ,ROW(A1)) 

#规整数据

=MID(A1,FIND("]",A1)+1,999)

参考资料:
wps表格如何批量做超链接?

二、通过Python来获取sheet表单的名称,并拼接成excel可以识别的函数

#2022年06月05日09:22:35
#author:mpj
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
from openpyxl import load_workbook    # 导入模块load_workbook
filename = r'/Users/Pengju/Desktop/中证项目/副本加超链接.xlsx'
data = pd.read_excel(filename,sheet_name=None) 
writer = pd.ExcelWriter(filename,engine='openpyxl')
save_book = load_workbook(writer.path)   
writer.book = save_book   # 将'文件'原表中的内容保存
sheet_names = list(data.keys())
#kk用来保存目录
kk=pd.DataFrame()
for s_name in sheet_names[0:]:
    # 生成超链接字符串
    hypre_link = r'=HYPERLINK("#'+s_name+'!a1' + '\",\"'+s_name+ '")'
    kk.loc[s_name,"sheet表名"] = hypre_link
#目录写入excel
kk.to_excel(writer,sheet_name='目录',index=True) 
writer.save()

参考文献:
python操作excel:批量为多个sheet页生成超链接

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 EasyExcel 批量导出写入到各个 sheet 非常简单,只需要在写入时指定 sheet 名称即可。具体步骤如下: 1. 定义 Excel 实体类,并在类上使用 `@ExcelSheet` 注解指定 sheet 名称,例如: ``` @ExcelSheet("Sheet1") public class Sheet1Data { @ExcelProperty("姓名") private String name; @ExcelProperty("年龄") private Integer age; // 省略 getter 和 setter 方法 } ``` 2. 创建写入的 Excel 文件并指定文件路径: ``` String filePath = "D:\\test.xlsx"; File file = new File(filePath); if (!file.exists()) { file.createNewFile(); } ``` 3. 创建 `ExcelWriter` 对象: ``` ExcelWriter excelWriter = EasyExcel.write(file).build(); ``` 4. 写入每个 sheet 的数据,使用 `excelWriter.write(List, Class, WriteSheet)` 方法,并在 `WriteSheet` 对象中指定 sheet 名称,例如: ``` // 写入 Sheet1 数据 List<Sheet1Data> sheet1DataList = new ArrayList<>(); //... 添加 sheet1Data 数据到 list 中 WriteSheet sheet1 = EasyExcel.writerSheet("Sheet1").head(Sheet1Data.class).build(); excelWriter.write(sheet1DataList, sheet1); // 写入 Sheet2 数据 List<Sheet2Data> sheet2DataList = new ArrayList<>(); //... 添加 sheet2Data 数据到 list 中 WriteSheet sheet2 = EasyExcel.writerSheet("Sheet2").head(Sheet2Data.class).build(); excelWriter.write(sheet2DataList, sheet2); ``` 5. 最后,关闭 `ExcelWriter` 对象,释放内存资源: ``` excelWriter.finish(); ``` 以上就是使用 EasyExcel 批量导出写入到各个 sheet 的简单示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值