You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用Python实现多Excel工作簿嵌入合并工作簿并支持相对路径超链接

实现带相对路径超链接的合并Excel工作簿

核心思路

通过openpyxl创建合并工作簿,在单元格中添加指向独立工作簿的相对路径超链接,确保压缩分享后,只要解压时保持原文件结构,链接依然可正常跳转。

代码实现

导入依赖模块

from openpyxl import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.cell.cell import Hyperlink
import os

核心逻辑代码

# 定义文件结构:独立工作簿存放目录、合并工作簿名称
sub_workbook_dir = "sub_workbooks"
merged_workbook_name = "合并工作簿.xlsx"

# 创建合并工作簿及工作表
merged_wb = Workbook()
index_ws = merged_wb.active
index_ws.title = "工作簿索引"

# 写入表头
index_ws["A1"] = "序号"
index_ws["B1"] = "工作簿名称"
index_ws["C1"] = "打开链接"

# 遍历子目录中的Excel文件,生成超链接
excel_files = [f for f in os.listdir(sub_workbook_dir) if f.lower().endswith((".xlsx", ".xls"))]
for row_num, file_name in enumerate(excel_files, start=2):
    # 填充序号和文件名
    index_ws[f"A{row_num}"] = row_num - 1
    index_ws[f"B{row_num}"] = file_name
    
    # 构建跨平台相对路径(统一用斜杠)
    relative_path = os.path.join(sub_workbook_dir, file_name).replace("\\", "/")
    link_cell = index_ws[f"C{row_num}"]
    
    # 设置单元格显示文本和超链接
    link_cell.value = "点击打开"
    link_cell.hyperlink = Hyperlink(ref=link_cell.coordinate, target=relative_path, display="点击打开")
    # 应用超链接样式(模拟手动添加的视觉效果)
    link_cell.style = "Hyperlink"

# 调整列宽优化显示
for col_idx in range(1, 4):
    index_ws.column_dimensions[get_column_letter(col_idx)].width = 18

# 保存合并工作簿
merged_wb.save(merged_workbook_name)

关键注意事项

  • 路径兼容性:用os.path.join生成路径后替换为斜杠,避免Windows系统反斜杠导致的链接失效问题
  • 文件结构维护:分享时必须将合并工作簿与sub_workbooks文件夹一起压缩,解压后不要修改层级结构
  • 样式优化:应用Hyperlink样式让单元格显示为蓝色下划线,符合用户对可点击链接的认知
  • 文件过滤:仅筛选Excel格式文件,避免无关文件被误加入索引

内容的提问来源于stack exchange,提问作者Nikita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 19:24:59