发布
社区首页 >问答首页 >如何在将内容拖动到Excel时指定数据类型

如何在将内容拖动到Excel时指定数据类型
EN

Stack Overflow用户
提问于 2010-10-07 19:49:04
回答 1查看 339关注 0票数 0

我使用这个简单的命令从我的WinForms应用程序开始拖放

代码语言:javascript
代码运行次数:0
复制
IDataObject data = new DataObject();
string textToExcel = "Hello\tWorld\t1\t2\nHello\tWorld\t1\t2\n"
data.SetData(DataFormats.Text, textToExcel);

当我拖放到Excel上时,我工作得很好,它以列和行的形式结束。问题是Excel不知道值为1和2的单元格是数值,当删除日期值时,情况会变得更糟。

我如何告诉Excel单个单元格的数据类型,当内容被拖放到Excel中时,Excel是否可以接受更丰富的类型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-10 08:36:46

通过拖放到Excel中,您能够进行通信的只是字符串,如果可以,Excel会自动将其转换为日期或数字类型。如果您不希望它将可识别类型转换为数据类型,则应该以appostrophe (')字符开头,例如' 100,而不是100。

如果您希望拥有完全控制,则应订阅Excel.Worksheet.Change事件,该事件将在拖放操作结束时触发。在这一点上,您可以对自己的数据进行自定义转换。如果您一开始就将数据作为一种不会被Excel自动转换的自定义格式传输,这将会很方便。例如,不是发送2x2块值,例如:

100 Hello $1.25 2010年10月9日

您可以通过以下方式发送它:

100 Hello 1.25 2010.10.9

这些值将由单元格作为字符串接收。但是当Worksheet.Change事件触发时,它将告诉您哪些单元格已经更改,并且您的例程可以处理字符串,查找以"<DragDrop:"开头的任何内容。然后,您可以将它们转换为字符串本身中指定的所需数据类型。

有关详细的示例,请参阅文章Adding Drag-and-Drop Functionality using the .NET Framework and Visual Studio 2005 Tools for Office Second Edition。在这篇文章中,他们使用了一个比"<DragDrop:"更独特示例--他们在字符串的前面使用GUID来真正确保字符串是唯一的和可识别的。但基本策略如上所述。

希望这能帮上忙

麦克

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3881301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档