V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wasd6267016
V2EX  ›  程序员

当我在 excel 复制一些色块的时候,实际上是在复制的什么?

  •  
  •   wasd6267016 · 2020-01-16 22:31:06 +08:00 · 2820 次点击
    这是一个创建于 1772 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 excel 里复制一些色块,可以粘贴到别的 excel 里,甚至是在线文档里

    现在我想用程序按照某些算法构造出这些色块,然后放到粘贴板里,这样可以直接粘贴在别的 excel 里
    (实际上就是想在 excel 里画画啦)

    所以想问问各位,如何查看这些数据是如何组织的呢
    -- 自己尝试了用 ditto 查看、粘贴到文本编辑器里,似乎都丢失了信息
    14 条回复    2020-06-19 09:58:21 +08:00
    wasd6267016
        1
    wasd6267016  
    OP
       2020-01-16 22:38:58 +08:00
    Juszoe
        2
    Juszoe  
       2020-01-16 22:57:57 +08:00
    貌似复制出来的是 RTF 格式(乱猜
    ensonmj
        3
    ensonmj  
       2020-01-16 23:01:20 +08:00 via iPhone
    还不如一步到位,直接用程序在 excel 里面生成整个图案,其实就是设置每个 field 的前景色吧
    also24
        4
    also24  
       2020-01-16 23:49:43 +08:00   ❤️ 1
    不知道楼主具体想干什么,我使用 ditto 复制了几个黄色的色块
    ![]( https://i.loli.net/2020/01/16/YSIThbMC9qDBaZO.png)

    然后使用 ditto 的 “加载项” -> “Ditto Utils” -> “Paste any clip as text” 功能粘贴出来。
    ![]( https://i.loli.net/2020/01/16/gNhIFGm8nUK74tX.png)

    此处我选择了后面两种,分别粘贴出了两种格式的内容。
    第一种很明显就是 rtf 格式的:
    https://pastebin.com/131QS2Pv

    而第二种,应该是 Microsoft Office XML 格式的:
    https://pastebin.com/nvteDhdZ

    格式的介绍:
    https://en.wikipedia.org/wiki/Microsoft_Office_XML_formats
    GPLer
        5
    GPLer  
       2020-01-17 00:54:24 +08:00 via Android
    nvkou
        6
    nvkou  
       2020-01-17 01:11:51 +08:00 via Android
    换个思路。用 VBA 直接实现?
    Kirscheis
        7
    Kirscheis  
       2020-01-17 01:19:47 +08:00 via Android
    是 XML

    不知道你们说的 ditto 是什么东西,但微软 office 新版本的内部格式实际上就是一堆 XML 文件,你可以试试把 pptx,docx,xlsx 文件后缀名改 zip 解压看看就知道他们的数据格式了。把 xml 压缩之后也可以直接变成这些文件。
    scnace
        8
    scnace  
       2020-01-17 01:21:05 +08:00 via Android
    ooxml
    xbigfat
        9
    xbigfat  
       2020-01-17 08:32:51 +08:00
    @Kirscheis ditto 是 Windows 上开源的剪贴板管理工具
    wasd6267016
        10
    wasd6267016  
    OP
       2020-01-17 10:45:06 +08:00
    @ensonmj 嘿嘿 想做的需求就是把这个粘贴板的内容搞懂
    wasd6267016
        11
    wasd6267016  
    OP
       2020-01-17 10:48:25 +08:00
    @also24 很感谢 但是构造出这些文本之后 再复制粘贴到 excel 就只是文本而已了
    also24
        12
    also24  
       2020-01-17 12:17:01 +08:00 via Android
    @wasd6267016
    你应该结合 @GPLer 回复的那个知乎链接,里面的第 2 个回答来看。
    我猜测你把这些文本直接放在 CF_TEXT 了。
    no1xsyzy
        13
    no1xsyzy  
       2020-01-17 12:26:07 +08:00
    @wasd6267016 Clipboard 有类型标记的,你需要设置类型,同样也可以多个类型分别设置内容
    而粘贴的那边就会根据这些来粘贴
    我记得 Excel 复制时还会有个图片类型的,复制单元格粘微信或者 zim 都是图片
    killmojo
        14
    killmojo  
       2020-06-19 09:58:21 +08:00
    放 HTML 就可以,弄个 table 。
    table 的 cell 有背景色,SpreadJS 就是这么实现和 Excel 之间粘贴复制单元格样式的。
    https://demo.grapecity.com.cn/SpreadJS/WebDesigner/content/index.html
    从 Excel 里复制出来的也是这样的 HTML
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2875 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:53 · PVG 14:53 · LAX 22:53 · JFK 01:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.