我如何将二维列表的内容复制到剪贴板,格式为 Excel?
how would I go about copying the contents of a 2-dimensional list to the clipboard, formatted for Excel?
我在 Python 实用程序中有一个二维列表,它使用 PyQt 写入 table。我还想将该列表中的所有数据复制到剪贴板,但需要注意的是,它必须格式化才能插入 excel 文档或 Word 中的 table(如 excel -格式化数据一般是).
那么,问题有两个方面:
1) 如何按字符串格式化数据以匹配 Excel 的标准,以及 2) 如何将其复制到剪贴板?
据我了解,Excel 格式的数据,当直接作为纯文本查看时,在某种程度上是 XML 格式的,但我不知道如何找出确切的内容XML 貌似。我还没有找到在粘贴时复制格式信息的文本编辑器;他们都只是删除格式并将单元格内容粘贴为纯文本。复制到剪贴板应该非常简单,我想。
您实际上是在问两个问题,所以我将仅限于第一个关于剪贴板的问题。您可能应该问另一个关于 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
我还建议您在询问之前多搜索一下。直到现在我都不知道该怎么做。
祝你在 Excel 方面好运!
最简单的方法可能是使用 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 中粘贴得很好(但是,制表符在上面的示例中被替换为空格 - 选择 'edit' 复制示例数据)。
对于 Word 中的真实 table,您可以将数据格式化为 html table。
也可以在剪贴板上放置多种格式,但我不确定在 Python 中如何做到这一点。
Mark Ransom's answer 使用 Windows API 复制到剪贴板。这允许您设置剪贴板格式。
有关标准格式,请参阅 this。
对于 html 格式,您需要 add some header data。
我在 Python 实用程序中有一个二维列表,它使用 PyQt 写入 table。我还想将该列表中的所有数据复制到剪贴板,但需要注意的是,它必须格式化才能插入 excel 文档或 Word 中的 table(如 excel -格式化数据一般是).
那么,问题有两个方面: 1) 如何按字符串格式化数据以匹配 Excel 的标准,以及 2) 如何将其复制到剪贴板?
据我了解,Excel 格式的数据,当直接作为纯文本查看时,在某种程度上是 XML 格式的,但我不知道如何找出确切的内容XML 貌似。我还没有找到在粘贴时复制格式信息的文本编辑器;他们都只是删除格式并将单元格内容粘贴为纯文本。复制到剪贴板应该非常简单,我想。
您实际上是在问两个问题,所以我将仅限于第一个关于剪贴板的问题。您可能应该问另一个关于 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
我还建议您在询问之前多搜索一下。直到现在我都不知道该怎么做。
祝你在 Excel 方面好运!
最简单的方法可能是使用 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 中粘贴得很好(但是,制表符在上面的示例中被替换为空格 - 选择 'edit' 复制示例数据)。
对于 Word 中的真实 table,您可以将数据格式化为 html table。
也可以在剪贴板上放置多种格式,但我不确定在 Python 中如何做到这一点。
Mark Ransom's answer 使用 Windows API 复制到剪贴板。这允许您设置剪贴板格式。
有关标准格式,请参阅 this。
对于 html 格式,您需要 add some header data。