错误的date时间格式从RadGridView复制/粘贴到Excel中时
从Telerik的RadGridView复制行到excel时,我有一个奇怪的问题,问题必须与一个DateTime列。
RadGridView中的列具有正确的格式:
06/17/2016 02:30 PM
但是,当用户复制行并将其粘贴到Excel中时,格式会被搞乱:
2016-06-16 14:30 PM //24hr format with PM period lol
我已经注意到,问题只发生在小于12的值上,例如,如果值是06/17/2016 08:54 AM
,它将被粘贴到excel格式正确。
所以认为它与格式我手动设置列的格式string与下面的代码:
dgv_history.Columns["Repair Date"].FormatString = "{0:MM/dd/yyyy HH:mm}";
我也试过了
dgv_history.Columns["Repair Date"].FormatString = "{0:MM/dd/yyyy hh:mm tt}";
但是这些代码行只会改变date在RadGridView中的显示方式,如果我尝试复制/粘贴到Excel中,问题依然存在。
这是一旦粘贴到excel中的样子:
2016-06-16 13:57 PM 2016-06-16 13:31 PM 6/16/2016 12:55 6/16/2016 12:33 6/16/2016 12:22 6/16/2016 11:48 6/16/2016 11:19
我能做些什么来解决这个问题呢?这是一个错误吗?我一直在search他们的文档,但我仍然找不到任何相关的东西。
谢谢
更新06/20/2016 12:15
看起来,这是RadGridView的一个正常function,正如在这个演示页面http://docs.telerik.com/devtools/winforms/gridview/copy-paste-cut中所看到的,结果和这个问题中描述的一样。
我对这个问题没有真正的答案,但看看:
http://docs.telerik.com/devtools/wpf/controls/radgridview/clipboard/copying.html
您有可能覆盖复制的值(您可以使用debugging器检查telerik正在写入剪贴板的内容)。
对不起,添加这个答案,但我还没有被允许发表评论。
干杯
托马斯
几年前创build时间卡时,我遇到了类似的问题 – 没有人喜欢使用这种24小时时间格式转换 – 而上午12点/下午可以抛出不重视的人,特别是从24小时复制/粘贴到双12小时格式 – 将数据input时间转换为基本公式示例中的可计算公式 – 一旦我将12-纳入公式中,我开始公式:= IF(C8> D8,12-C8 + D8,D8- C8,然后乘以它回到一个负1后,它解决了自己。
检查客户端PC区域设置上的date时间设置是否正确。 就像一个build议,如果没有别的作品
我认为RadGridView生成的date时间总是像“2016-06-16 13:57 PM”,但是excel通过其内置function对其进行了格式化。 这可能是由于缺less“PM”引起的,所以Excel添加它并将其转换为默认的date时间格式。 您可以在复制之前将单元格属性更改为“文本”,这应该始终将数据视为string。
我能解决这个问题,但我不得不操纵数据对象被添加到剪贴板。
因为它变成唯一的问题是时间被附加在DateTime值的末尾,所以为了解决它我使用下面的代码中删除所有date时间值中的所有时期。
DataObject dataobject = dgv_history.GetClipboardContent(); //Gets the data object as a CSV string string dos = dataobject.GetText(TextDataFormat.CommaSeparatedValue); //Replaces all the occurrences of AM & PM with an empty string dos = dos.Replace(" AM", string.Empty); dos = dos.Replace(" PM", string.Empty); //Sets the modified CSV string as the DataObject dataobject = new DataObject(dos); //Adds the DataObject to the clipboard Clipboard.SetDataObject(dataobject, true);
通过这样做,date时间被粘贴为格式良好的24小时格式,并通过excel进行检测。
还有另一个临时解决scheme,我能够创build,但涉及我们的SSRS服务器。 我使用与RadGridView相同的参数创build了一个简单的报告,报告输出可以很容易地下载为Excel电子表格,而不必担心由WinFroms控件操作或翻译数据。
谢谢大家的时间和答案。