如何以编程方式将CSV文本粘贴到Excel中,而不仅仅是粘贴到一个单元格中?(C++)

How to programmatically Paste CSV text into Excel and not just go into one cell? (C++)

本文关键字:不仅仅是 C++ 单元格 一个 Excel 编程 方式 文本 CSV      更新时间:2023-10-16

我在MFC(c++)应用程序中有一个列表/网格。我希望用户能够将数据复制并粘贴到电子表格中。

我已经把数据放在剪贴板中,文本可以放在剪贴板上,我可以把它粘贴到记事本、Word或Excel中,但Excel不会解释我剪贴板内容的逗号分隔值,所以它只进入一个单元格/一列,而不是按照我的希望做。

我希望我缺少一些简单的东西。

有什么建议可以让它发挥作用吗?

我还没有准备好将其作为拖放源(在任务列表中)

编辑:

我有它的工作-逗号不能使用-必须是标签分隔符

但现在出现了一个新问题:

现在的问题是,如果我用"\n"作为行分隔符粘贴到excel,它在excel中看起来很好,但在记事本中却不好。

如果我把它设为"\r\n",那么记事本看起来是正确的,但excel有空行。

关于如何使两者保持一致,有什么建议吗?

我使用了这个问题,选项卡似乎可以工作,但csv仍然不能

如何使用C#将CSV数据粘贴到Windows剪贴板

好吧,这是我的两分钱。。NSString中的一个制表符,如@"123\t456",似乎会告诉Numbers和OpenOffice电子表格,456会进入同一行的下一个单元格。

同样,换行符或回车符会将后续数据放在新行上,例如@"123\n456"或@"123\r456"会将456放在下一行(从左起第一列开始)。

实际上,TextEdit并不解释换行符(\n)或回车符(\r)。(OpenOffice文本文档确实如此。)但是,为粘贴板提供字符串数组(无论是NSStringPBoardType、NSRTFPBoardType还是其他类型),都会将不同的字符串放在电子表格和TextEdit中的不同行上。

此外,一个选项卡(\t)在TextEdit中显示为选项卡,然后您可以在工具栏中对其进行操作,以获得良好的数据布局。

相关文章: