问题一。
DevExpress GridView导出到Excel中不能导出自定义日期
问题描述:
我有一个第一列为日期列的GridView。它在运行时会绑定到日期,但他们通过CustomColumnDisplayText事件定制类似下面的季度和全年格式转换的日期:
[C#]
private void gvwMargin_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { // Change the colDate column for quarter only since there is no built-in format. if (sDisplayType == Constants.DISPLAYBY_QUARTERLY) { if (e.Column.Name == "colDate") { DateTime date = Convert.ToDateTime(e.Value); int quarterNumber = (date.Month - 1) / 3 + 1; e.DisplayText = string.Format("Q{0} {1}", quarterNumber, date.Year); } } }然而,当我将GridView导出为xls或xlsx格式时,返回绑定到网格的日期列丢失了格式,显示的是实际日期。我怎样才能在将网格导出为xls或xlsx时自定义日期并保持它?当我将网格导出为PDF或HTML格式时日期似乎并没有发生变化。
问题解答:
改变CustomColumnDisplayText只能影响显示的文字,并不会改变数据源的值。 默认情况下,GridControl导出的是数据字段值,而不是显示的文字。为了解决这个问题,您可以将导出数据作为一个字符串,通过将TextExportMode对象的XlsExportOptions属性设置为文本即可实现。
[C#]
XlsExportOptions options = new XlsExportOptions(); options.TextExportMode = TextExportMode.Text; gridControl1.ExportToXls("File.xls", options);
来源: