使用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

相关推荐
Mr.朱鹏3 小时前
【FastAPI 全栈实战 | 第2篇】Pydantic 数据校验与响应模型 —— 让 Bug 死在请求进来的那一刻
人工智能·python·fastapi
Xiangchu_3 小时前
安徽硅胶厂的转型困局:从家电到汽车,卡在哪
经验分享·python·阿里云·eclipse·汽车·制造
CTA终结者4 小时前
近期AI量化工具推荐,围绕最难推进的环节选择
人工智能·python
谙忆4 小时前
Python 常用图像处理库速查:Pillow、OpenCV、rembg、pillow-simd 各擅长什么、怎么选
图像处理·python·pillow
敲代码的猴先生4 小时前
论文分享 | TensorAbuse:通过滥用TensorFlow API将AI模型转化为恶意软件
人工智能·python·语言模型·tensorflow·论文笔记
言乐64 小时前
Python视频相对亮度检测
数据库·python·计算机视觉·小程序·音视频
Csvn4 小时前
Python 开发技巧 · logging 最佳实践 —— 告别 print,搭建工程级日志系统
后端·python
ShallWeL4 小时前
【机器学习】(16)—— 数值数据
人工智能·python·算法·机器学习·数据分析
gr95ZS6E64 小时前
基础入门java安全(一)--CC1基础分析
开发语言·python
极度的坦诚就是无坚不摧4 小时前
数据分析DAY1-Python基础
python·数据分析