在 Windows 剪贴板复制缓冲区中包含格式信息以粘贴到 Excel 中
我的应用程序将表格数据写入 Windows 复制缓冲区,以便用户粘贴到 Excel 中。这适用于未格式化的表格数据,包括制表位以及单元格和行分隔符的新行。
我想在复制缓冲区中包含格式化数据:网格线、背景颜色等。我可以这样做吗?如果可以,在哪里可以找到用于编码格式化数据的规范?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,这是可能的(显然,您可以通过剪贴板将格式化的 Excel 数据从一个正在运行的 Excel 实例复制到另一个 Excel 实例,因此这一定是可能的!)
请记住,Windows 剪贴板可以同时保存多种格式的内容。 Excel 格式的网格内容所需的格式称为 BIFF,即二进制交换文件格式。它与 Excel 实际存储文件的格式相同。可以从 Open 获取 BIFF 文档 的合理来源办公室。
一旦了解了 BIFF 的基础知识,您就会发现生成所需 BIFF 的最简单方法是从 Excel 电子表格复制所需单元格的模型,然后检查剪贴板中的内容。
Yes, it's possible (obviously, you can copy formatted Excel data from one running instance of Excel to another via the clipboard, so it must be possible!)
Remember that the Windows clipboard can hold things in more than one format at the same time. The format you want for Excel formatted grid stuff is called BIFF, that is, The Binary Interchange File Format. It's the same format as Excel actually stores files in. A reasonable source of BIFF documentation is available from Open Office.
Once you figure out the basics of BIFF, you'll find that the easiest way to generate the BIFF you want is to copy a model of the cells you want from an Excel spreadsheet and examine what's in the clipboard.
解决方案#1
借助此 如何使用 Python 将 HTML 代码复制到剪贴板?
我使用 Excel 创建表格示例。选择表格后:
然后,如果您使用文本编辑器打开它,您可以看到 html,对其进行修改或使用代码生成不同的值,并使用 the_RR PutHtml(html_table_str) href="https://stackoverflow.com/questions/55698762/how-to-copy-html-code-to-clipboard-using-python">55698762 将其放入剪贴板或制作您自己的代码另一种语言。
然后你可以粘贴到Excel中,它就完美地工作了。
示例代码:
解决方案 #2
您也可以简单地将 html 文档文本直接粘贴到 Excel 中,但我不确定它是否适用于较旧的 Excel 版本,并且与解决方案 #1 不同,它在 MS 中不起作用词或观点。
示例 html :
Solution #1
Found a solution with the help of this How to copy HTML code to clipboard using Python?
I use excel to create an example of my table. With the table selected :
Then if you open this with a text editor you can see the html, modify it or generate it with different value with your code and use
PutHtml(html_table_str)
provided by the_RR 55698762 to put it inside clipboard or make your own code in another language.You can then paste into excel and it work perfectly.
sample code:
Solution #2
You can also simply paste html document text directly into excel but i'm not sure if it work with older excel version and unlike the solution #1, doesn't work in ms word or outlook.
sample html :
解决方案是编写一个小程序来转储剪贴板的内容,包括所有不同的格式。然后,将一些 Excel 复制到剪贴板中,转储剪贴板,您将看到如何格式化数据。
这是我编写的应用程序的输出,因此我可以将表格粘贴到富文本应用程序中:
开始/结束是字节偏移量。 “C0FC”文本类型代码似乎根据我尚未弄清楚的模式每天都在变化。您必须进行试验并使用试用版和试用版。错误。
The solution is to write a small program that dumps the contents of the clipboard, including all the different formats. Then, copy some Excel into the clipboard, dump the clipboard, and you will see revealed how to format the data.
Here is the output from an app that I wrote, so I can paste a table to rich text apps:
The Start/End are byte offsets. The "C0FC" text type code seems to vary from day to day according to a pattern I haven't figured out. You'll have to experiment and use trial & error.