我在Python实用程序中有一个二维列表,该列表使用PyQt写入表。我还想将所有数据从该列表复制到剪贴板,但要注意的是,必须将其格式化才能插入Excel文档或Word中的表格(通常是excel格式的数据)。
那么,问题有两个: 1)如何按字符串格式化数据以符合Excel的标准,以及2)如何将数据复制到剪贴板?
据我了解,以Excel格式的数据直接以纯文本形式查看时,是以某种方式以XML格式进行的,但是我不知道如何确切地了解XML的外观。我还没有找到可以在粘贴时复制格式信息的文本编辑器;它们都只是删除格式并将单元格内容粘贴为纯文本。我认为复制到剪贴板后应该很简单。
答案 0 :(得分:1)
最简单的方法可能是使用TAB分隔值,例如:
15.117 0.681 39.871 533.47
14.771 0.755 47.559 652.65
11.849 0.682 47.561 660.76
10.92 0.63 46.908 658.26
10.087 0.613 47.649 676.23
这可以很好地粘贴在Word和Excel中(但是,在上面的示例中,选项卡已替换为空格-选择“编辑”以复制示例数据)。
对于Word中的真实表,您可以将数据格式化为html表。
也可以在剪贴板上放置多种格式,但是我不确定在Python中如何实现。
Mark Ransom's answer使用Windows API复制到剪贴板。这使您可以设置剪贴板格式。
有关标准格式,请参见this。
对于html格式,您需要add some header data。
答案 1 :(得分:0)
您实际上是在问两个问题,所以我将只限于第一个有关剪贴板的问题。您可能应该问另一个有关Excell行为的问题,因为它与Python完全无关。
将文本发送到剪贴板的最佳方法似乎是使用Tk,因为它通常是随Python一起提供的,因此更易于移植:
from Tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append('i can has clipboardz?')
r.update() # now it stays on the clipboard after the window is closed
r.destroy()
此代码是由原子化器here
编写的我还建议您在询问之前多进行搜索。直到现在我还不知道该怎么做。
祝你好运!