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

如何用Python获取Excel/HTML复制的剪贴板富文本而非纯文本?

获取剪贴板中的富文本(Excel/HTML来源)

pyperclip和clipboard这类库仅封装了纯文本的剪贴板操作,要获取富文本需直接调用系统级剪贴板API,以下分平台给出实现方案:

Windows平台(使用pywin32)

Windows剪贴板中,从Excel/HTML复制的富文本通常以CF_HTML格式存储,可通过win32clipboard模块读取:

  1. 安装依赖:
pip install pywin32
  1. 读取剪贴板富文本代码:
import win32clipboard

def get_clipboard_html():
    win32clipboard.OpenClipboard()
    try:
        # 检查剪贴板是否包含CF_HTML格式数据
        if win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_HTML):
            html_data = win32clipboard.GetClipboardData(win32clipboard.CF_HTML)
            return html_data.decode('utf-8')  # 解码为字符串
        else:
            return "剪贴板中无HTML格式富文本"
    finally:
        win32clipboard.CloseClipboard()

# 使用示例
print(get_clipboard_html())

这段代码会返回带格式标记的HTML内容,Excel复制的内容会被转换为带表格样式的HTML代码。

macOS平台(使用pyobjc)

macOS的剪贴板通过NSPasteboard管理,富文本通常以public.html或public.rtf格式存在:

  1. 安装依赖:
pip install pyobjc
  1. 读取剪贴板富文本代码:
from AppKit import NSPasteboard

def get_clipboard_rich_text():
    pasteboard = NSPasteboard.generalPasteboard()
    # 优先读取HTML格式
    html_data = pasteboard.stringForType_("public.html")
    if html_data:
        return html_data
    #  fallback到RTF格式
    rtf_data = pasteboard.stringForType_("public.rtf")
    return rtf_data if rtf_data else "剪贴板中无富文本数据"

# 使用示例
print(get_clipboard_rich_text())

说明

  • 从Excel复制的内容,在剪贴板中会同时存在纯文本、HTML、RTF等多种格式,可根据需求选择对应格式读取。
  • 跨平台场景下,需针对不同操作系统做分支判断,调用对应的剪贴板操作逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:35:33