使用pyhon脚本方式将超链接保存到第一列以数字方式显示

由于工作中经常需要对Excel第一列数据进行超链接处理,之前都是手动处理,借助AI cursor 的力量,可以自动化实现进行统一处理

上代码

python 复制代码
import openpyxl
from openpyxl.styles import Font

def add_hyperlinks_to_first_column(input_file, output_file=None):
    """
    读取Excel第一列的数字,添加超链接,并保持显示为数字。
    
    :param input_file: 输入Excel文件路径
    :param output_file: 输出Excel文件路径,默认为覆盖原文件
    """
    if not output_file:
        output_file = input_file
        
    try:
        wb = openpyxl.load_workbook(input_file)
    except FileNotFoundError:
        print(f"错误: 找不到文件 {input_file}")
        return
    except Exception as e:
        print(f"错误: 无法打开文件 {e}")
        return

    ws = wb.active
    base_url = "http://贴你自己的网址?id="
    max_row = ws.max_row
    
    print(f"正在处理: {max_row} 行数据...")
    count = 0

    for row in range(1, max_row + 1):
        cell = ws.cell(row=row, column=1)
        val = cell.value
        
        # 检查是否为有效数字ID
        if val is not None:
            try:
                # 统一转换为整数以构建URL
                if isinstance(val, float) and val.is_integer():
                    id_num = int(val)
                elif isinstance(val, int):
                    id_num = val
                elif isinstance(val, str) and val.strip().isdigit():
                    id_num = int(val.strip())
                else:
                    continue
                
                full_url = f"{base_url}{id_num}"
                
                # 关键步骤:
                # 1. 设置单元格的 hyperlink 属性为完整URL
                # 2. 保持 cell.value 不变(即保持显示为数字)
                cell.hyperlink = full_url
                
                # 可选:设置字体样式以提示用户这是可点击的链接(蓝色+下划线)
                # 注意:这不会改变单元格的值,只改变外观
                cell.font = Font(color="0563C1", underline="single")
                
                count += 1
            except ValueError:
                continue

    try:
        wb.save(output_file)
        print(f"完成!已为 {count} 个单元格添加超链接。")
        print(f"保存至: {output_file}")
    except Exception as e:
        print(f"保存失败: {e}")

if __name__ == "__main__":
    # 请替换为你的实际文件名
    filename = "data.xlsx"
    add_hyperlinks_to_first_column(filename)

最终实践可以执行

C:\Users\liuw\PycharmProjects\pythonProject\venv\Scripts\python.exe C:\Users\liuw\PycharmProjects\pythonProject\add_hyperlinks.py

正在处理: 95 行数据...

完成!已为 94 个单元格添加超链接。

保存至: data.xlsx

Process finished with exit code 0

相关推荐
quantdash_cc13 分钟前
股票历史数据为什么比实时行情更重要?回测结果失真的根源可能就在 K 线数据
开发语言·python·数据分析·量化交易·股票数据·quantdash
Web3&Basketball41 分钟前
LLM 峰谷定价怎么吃满:一个能对账的错峰调度器
python·性能优化·大模型·任务调度·成本优化·deepseek·推理优化
2601_9622186143 分钟前
万象生鲜系统订单全生命周期状态同步技术实现业务可视
大数据·数据库·人工智能·python·算法
FOAF-lambda1 小时前
uiautomation-new 控件方位的使用
开发语言·python
OKkankan1 小时前
LangChain能力详解!:从工具调用到 LangSmith——让聊天模型具备实时交互能力!
开发语言·python·langchain
2601_962298273 小时前
Python自动化脚本的编写01
python·appium·自动化脚本·web自动化·应收账款管理
AIFQuant3 小时前
Python实时外汇行情接入实战:WebSocket与REST K线查询
开发语言·python·websocket
babe小鑫3 小时前
生物统计学专业校招:SAS、R、Python学习顺序实用指南
python·学习·r语言
vx_Biye_Design3 小时前
springboot游泳馆系统93765-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·spring·课程设计
固定资产管理系统软件4 小时前
该去哪里找专业靠谱的智慧智能设备固定资产管理系统?
人工智能·python