使用带格式文本的ASPxGridViewExporter将ASPxGridView导出到xlsx

我有一个ASPxGridView有许多列(typesGridViewDataComboBoxColumnGridViewDataHyperLinkColumn )。 在网格的CustomColumnDisplayText事件后面的代码中,我按以下方式格式化单元格的文本:

 protected void MyGrid_CustomColumnDisplayText(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDisplayTextEventArgs e) { if (e.Column is DevExpress.Web.ASPxGridView.GridViewDataColumn) { switch (e.Column.FieldName) { case "Energy": if (e.Value is float) { // the FormatEnergy method here returns for example "323.32 kWh" e.DisplayText = DataDisplayTools.Instance.FormatEnergy((float)e.Value); } break; // other cases } } } 

为了以.xlsx格式导出网格视图,我使用了一个ASPxGridViewExporter

 protected void lnkXlsxExport_Click(object sender, EventArgs e) { try { gridViewExporter.DataBind(); gridViewExporter.WriteXlsxToResponse(); } catch (Exception e1) { // } } 

我的问题是,当我将网格视图导出为.xlsx时 ,导出文件中列的值不是格式化的,因为它们在网格视图中。 例如,网格视图中的值(它们在CustomColumnDisplayText事件中被格式化)是

  • 32,332千瓦时
  • 311千瓦时
  • 2,254千瓦时

但导出后xlsx文件中的这些值看起来像

  • 32332
  • 311
  • 2254

在这里输入图像说明

我的问题是:可以使用ASPxGridViewASPxGridView导出为具有与网格视图一样的excel文件单元格中完全相同文本的excel文件?

ASPxGridViewExporter通过值导出网格内容,而不是显示文本。 创buildXlsxExportOptions类的实例,将其TextExportMode属性设置为Text,并在导出期间使用此实例。 以下是DevExpress支持中心上的相应票据: ASPxGridView – 从v.9.2升级到v.13.2后,导出到Excel时,CustomColumnDisplayText事件不起作用 。

您也可能会遇到ASPxGridView / MVC GridView扩展 – Excel数据感知导出FAQ票证中描述的问题 。 此票提供了一个解决scheme。